Enhanced content route selection in content delivery networks

ABSTRACT

Systems, methods, apparatuses, and software for a content delivery network that caches content for delivery to end user devices is presented. In one example, a method includes establishing domain name relationships for use by a top-level DNS to recurse DNS queries to a DNS node associated with the CDN. The method also includes establishing address correlations between prefixed IPv6 network addresses and PQDNs that comprise indicators for at least a routing provider identifier and a cache node grouping. The method also includes receiving recursed DNS queries and responsively translating domain names in the recursed DNS queries into associated IPv6 network addresses to reach content indicated by the domain names, the associated IPv6 network addresses each determined by at least selecting one of the prefixed IPv6 network addresses according to a desired routing provider and a desired cache node grouping indicated in the PQDNs.

RELATED APPLICATIONS

This application is a continuation of, and claims the benefit ofpriority to, U.S. patent application Ser. No. 15/096,449 filed on Apr.12, 2016, and entitled “Enhanced Content Route Selection in ContentDelivery Networks”, which itself claims the benefit of U.S. ProvisionalApplication No. 62/253,886, filed on Nov. 11, 2015, and entitled“Enhanced Content Route Selection in Content Delivery Networks”, both ofwhich are hereby incorporated by reference in their entirety.

TECHNICAL FIELD

Aspects of the disclosure are related to the field of communicationnetworks, and in particular content delivery and routing of content overcommunication networks.

TECHNICAL BACKGROUND

Network-provided content, such as Internet web pages or media contentsuch as video, pictures, music, and the like, are typically served toend users via networked computer systems. End user requests for thenetwork content are processed and the content is responsively providedover various network links. These networked computer systems can includeorigin hosting servers which originally host network content of contentcreators or originators, such as web servers for hosting a news website.However, these computer systems of individual content creators canbecome overloaded and slow due to frequent requests of content by endusers.

Content delivery networks have been developed which add a layer ofcaching between the origin servers and the end users. The contentdelivery networks typically have one or more cache nodes distributedacross a large geographic region to provide lower latency access to thecontent for the end users. When end users request content, such as a webpage, which is handled through a cache node, the cache node isconfigured to respond to the end user requests instead of the originservers. In this manner, a cache node can act as a proxy for the originservers. However, end user devices first typically query a domain namesystem (DNS) node to translate domain names associated with content intonetwork addresses to retrieve that content. DNS systems can includehierarchical structures which recurse DNS queries to a second DNS node.

Internet Protocol version 6 (IPv6) has been established to overcome someof the shortcomings with IPv4, namely total address space limitations aswell as other protocol limitations. IPv6 incorporates a 128-bit addressinstead of the 32-bit address of IPv4, and IPv6 has now been implementedin most network routing equipment. Although IPv6 can provide for alarger quantity of independently addressable endpoints, managing androuting traffic for these endpoints over a plurality of packet networkscan be difficult.

OVERVIEW

Systems, methods, apparatuses, and software for a content deliverynetwork that caches content for delivery to end user devices ispresented. In one example, a method includes establishing domain namerelationships for use by a top-level domain name system (DNS) to recurseDNS queries to a DNS node associated with the CDN, by at leastestablishing address correlations between prefixed Internet Protocolversion 6 (IPv6) network addresses and partially qualified domain names(PQDNs) that comprise indicators for at least a routing provideridentifier and a cache node grouping. The method also includes receivingrecursed DNS queries and responsively translating domain names in therecursed DNS queries into associated IPv6 network addresses to reachcontent indicated by the domain names, the associated IPv6 networkaddresses each determined by at least selecting one of the prefixed IPv6network addresses according to a desired routing provider and a desiredcache node grouping indicated in the PQDNs

In another example, a content delivery network having a plurality ofsites each comprising cache nodes that cache content for delivery to enduser devices is presented. The content delivery network includes a DNSnode associated with the CDN and configured to establish domain namerelationships for use by a top-level DNS to recurse DNS queries to theDNS node. The DNS node is configured to establish address correlationsbetween prefixed IPv6 network addresses and PQDNs that compriseindicators for at least a routing provider identifier and a cache nodegrouping. The DNS node is configured to receive recursed DNS queries andresponsively translate domain names in the recursed DNS queries intoassociated IPv6 network addresses to reach content indicated by thedomain names, the associated IPv6 network addresses each determined byat least selecting one of the prefixed IPv6 network addresses accordingto a desired routing provider and a desired cache node groupingindicated in the PQDNs.

In another example, a method of operating a DNS node of a contentdelivery network that caches content for delivery to end user devices ispresented. The method includes establishing domain name relationshipsfor use by a top-level DNS to recurse DNS queries to a DNS nodeassociated with the CDN, and establishing address correlations betweenprefixed IPv6 network addresses and PQDNs that comprise indicators forat least a routing provider identifier and a cache node grouping. Themethod also includes receiving recursed DNS queries and responsivelytranslating domain names in the recursed DNS queries into associatedIPv6 network addresses to reach content indicated by the domain names,the associated IPv6 network addresses each determined by at leastselecting one of the prefixed IPv6 network addresses according to adesired routing provider and a desired cache node grouping indicated inthe PQDNs.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the views. While multiple embodiments are described inconnection with these drawings, the disclosure is not limited to theembodiments disclosed herein. On the contrary, the intent is to coverall alternatives, modifications, and equivalents.

FIG. 1 illustrates a communication system.

FIG. 2 illustrates a method of operating a communication system.

FIG. 3 illustrates an example address space.

FIG. 4 illustrates a method of operating a communication system.

FIG. 5 illustrates an example address space.

FIG. 6 illustrates a communication system.

FIG. 7 illustrates a method of operating a communication system.

FIG. 8 illustrates a method of operating a communication system.

FIG. 9 illustrates an example address space.

FIG. 10 illustrates a cache node.

FIG. 11 illustrates a control node.

DETAILED DESCRIPTION

Network content, such as web page content, typically includes contentsuch as text, hypertext markup language (HTML) pages, pictures, video,audio, code, scripts, or other content viewable by an end user in abrowser or other application. This various network content can be cachedby the content nodes of a content delivery network. The network contentcan include website content, pictures, video, other media, dynamiccontent, and other content, including combinations thereof.

Content delivery networks (CDNs) can add a layer of caching betweenorigin servers of the content providers and the end users. The contentdelivery networks typically have one or more cache nodes distributedacross a large geographic region to provide lower latency local accessto the content for the end users. When end users request content, suchas a web page, a selected cache node will respond to the content requestinstead of the associated origin server. Various techniques can beemployed to ensure the cache node responds to content requests insteadof the origin servers, such as associating web content of the originservers with network addresses of the cache nodes instead of networkaddresses of the origin servers using domain name system (DNS)registration and lookup procedures. Although cache nodes and originservers are shown as different nodes in the examples herein, it shouldbe understood that the origin servers and cache nodes can be included inone or more of the same nodes. Moreover, the concepts and examplesherein can apply to not only cache nodes and CDNs but also to anynetwork node and associated network elements, such as servers, storagenodes, end user nodes, distributed computing nodes, processing nodes,and the like.

Internet Protocol version 6 (IPv6) has been established to overcome someof the shortcomings with IPv4, namely total address space limitations aswell as other protocol limitations. This address space can be leveragedas IPv6 becomes implemented in more network elements and routingequipment. IPv4 provides 32-bit IP addressing, while IPv6 uses 128-bitaddressing, providing for 2¹²⁸ uniquely identifiable addresses. IPv6addresses are represented as eight groups of four hexadecimal digitsseparated by colons, such as example IPv6 address1111:FFFF:2222:EEEE:3333:DDDD:4444:CCCC. Other representations arepossible, such as more compact representations.

In some network routing examples, classless inter-domain routing (CIDR)can be employed, which includes a compact network address representationthat uses a “slash prefix” notation after an initial set of addressdigits. This notation indicates how many digits or bits are relevant forrouting associated packets, and routing equipment can use the quantityof digits indicated by the slash notation to select routing pathways.For example, an address with 1111:FFFF:2222::/40 indicates that thefirst 40 bits of the IPv6 address are employed for routing purposeswhile the remaining bits are used for other purposes, such as localrouting, routing within a point-of-presence (POP). IPv4 can usedifferent notations than IPv6, however the examples below will mainlyemploy IPv6 notations. The number of digits used in the slash notationcan vary, and typically only a maximum of 48 bits are employed in aprefixed notation, namely 1111:FFFF:2222::/48. Typical global routingelements have /48 prefixed addresses as the most specific addresses thatcan be specified for use in routing tables of the global routingelements. The distributed nature of packet networks, such as theInternet, allows for traffic to reach specific endpoints using localizedor regional routing elements to route traffic according to addressesmore specific than /48 prefixes.

The remaining bits in an IPv6 address can be used for local routing,among other uses. In the examples herein, enhanced routing is employedfor handling network traffic over multiple backhaul networks or multipleISPs. Further enhancements and technical improvements include local loadbalancing in sites/POPs with IPv6 address selection, among othertechnical enhancements. A site can comprise a geographic location but asite can also have less physical-based distinctions. For example, a sitecan span more than one POP. A site might indicate a particular datacenter or multiple data centers that serve a particular geographic areaor serve links groups by related traffic latencies. Content deliverynetworks discussed herein can include a plurality of sites, which caneach comprise POPs or other physical or logical distinctions.

As a first example employing a content delivery network, FIG. 1 ispresented. FIG. 1 is a system diagram illustrating communication system100. Communication system 100 includes content delivery network (CDN)110 which further includes a plurality of sites, which can each comprisePOPs or other physical or logical distinctions. Each site includes aplurality of cache nodes which cache content for delivery to end userdevices. Site A includes cache node 111 and site B includes cache node112, although further sites and cache nodes can be included in otherexamples. CDN 110 is communicatively coupled to a plurality of backhaulpacket networks, namely backhaul network 105 and backhaul network 106 inFIG. 1. End user devices 120 can request content from any of the cachenodes in FIG. 1 and can responsively receive content transferred by thecache nodes over associated network links and backhaul networks. Originserver 130 can include one or more server elements which originatecontent which is cached by the cache nodes.

In operation, cache nodes 111-112 cache content of at least originserver 130. This content can include web pages, media content, data,executable code, scripting content, among other types of contentdeliverable over backhaul networks 105-106. Cache nodes 111-112 delivercontent upon request to end user device 120, or other end user devices,over associated ones of backhaul networks 105-106. By caching thecontent of origin server 130 or other origin servers, cache nodes111-112 can provide faster access to this content to end user devices,such as end user device 120. In many examples, site A and site B, amongother sites, are distributed over a geographic area for lower latencyaccess to content normally provided by one or more origin servers. Cachenodes 111-112 can also cache dynamic content, such as content generatedresponsive to activities of end user device 120.

In FIG. 1, origin server 130 communicates over any of network links150-151, which can include further packet networks, such as one or morelocal ISPs through which origin server 130 communicates Likewise, enduser device 120 communicates over any of network links 152-153, whichcan include further packet networks, such as one or more local ISPsthrough which end user device 120 communicates. Site A of CDN 110communicates over any of network links 154-155, and site B of CDN 110communicates over any of network links 156-157.

To aid in retrieval of content or to identify network addresses forvarious element of CDN 110, domain name system (DNS) system 101 isincluded. When a domain name is employed for a particular networkendpoint or for network content, a DNS request can be issued to DNSsystem 101 which can respond with a network address associated with thedomain name. In further examples, a hierarchical DNS structure isemployed, with a top-level DNS system deferring to a local or recursiveDNS node employed by CDN 110 for performing domain name translations.

However, in FIG. 1, site A and site B might wish to direct networktraffic over selected ones of backhaul network 105 and 106. In theexamples below, prefixed IPv6 addressing can be employed to achieveselective routing over backhaul network 105 and 106. To furtherillustrate example operations of system 100, FIG. 2 is provided. FIG. 2is a flow diagram illustrating a method of operating system 100. Theoperations of FIG. 2 are referenced below parenthetically, and can beperformed by various equipment of CDN 110, such as control node 140, orelements of site A or site B, such as cache nodes 111-112 or otherelements local to the respective site.

In FIG. 2, for sites each comprising cache nodes of CDN 110, controlnode 140 assigns (201) prefixed addresses, with ones of the prefixedaddresses indicating associated pathways for routing traffic to reachthe sites over more than one packet network, namely backhaul networks105-106. The prefixed addresses can comprise IPv6 network addresses inthe prefixed notation, as discussed above. For example, FIG. 1 shows /44prefixed addresses associated with each of cache node 111 and 112, withaddresses {1}-{3} associated with cache node 111 and addresses {4}-{6}associated with cache node 112. Furthermore, a top-level prefixedaddress {0} is shown in FIG. 1 as indicating a /29 prefixed addresswhich corresponds to CDN 110. The top-level prefixed address cancomprise a RIPE /29 prefixed address assigned by the Réseaux IPEuropéens Network Coordination Centre (RIPE NCC), although otherentities can assign top-level addresses.

Assignment of the prefixed addresses can include identifying associatedprefixed addresses and storing the assigned prefixed addresses into adata structure, such as table, address list, or other data structure oncomputer-readable storage media. This computer-readable storage mediacan be included in control node 140 or any of cache nodes 111-112, amongother locations, including combinations thereof. Once the desiredprefixed addresses are assigned to appropriate sites and cache nodes,then control node 140 can announce the prefixed addresses.

Control node 140 announces (202) the prefixed addresses to the packetnetworks, with a first portion of the prefixed addresses indicated tobackhaul network 105 and a second portion of the prefixed addressesindicated to backhaul network 106. These announcements can be carried inone or more announcement messages transferred by control node 140 or byequipment at site A or site B. As seen in FIG. 1, site A announcementmessages 171-172 are transferred over associated links 154-155.

Announcement message 171 is transferred for delivery to backhaul network105 over link 154, and backhaul network 105 will employ information inannouncement message 171 when selecting routes for traffic addressed tosite A that has network addressing corresponding to any of the prefixedaddresses. Announcement message 171 indicates three sets of prefixedaddresses, namely {1}, {2}, and {1, 2, 3}. The first two sets includemore specific prefixes than the third set which has a less specificprefix and also includes the first two prefixes. The first two sets aretypically given preferred status with routing equipment when selectingroutes for traffic that indicates network addresses covered by thoseprefixed addresses. The first set comprises a global routing prefixedaddress, which can be used by any backhaul network to route networktraffic to site A. The second set comprises a prefixed address unique tobackhaul network 105, and is for use by backhaul network 105 only whenrouting network traffic to site A. The third set indicates a set ofthree prefixed addresses, with one of the prefixed addressescorresponding to routing of backhaul network 106 instead of backhaul105, namely prefixed address {3}.

Announcement message 172 is transferred for delivery to backhaul network106 over link 155, and backhaul network 106 will employ information inannouncement message 172 when selecting routes for traffic addressed tosite A that has network addressing corresponding to any of the prefixedaddresses. Announcement message 172 indicates three sets of prefixedaddresses, namely {1}, {3}, and {1, 2, 3}. The first two sets includemore specific prefixes than the third set which has a less specificprefix and also includes the first two prefixes. The first two sets aretypically given preferred status with routing equipment when selectingroutes for traffic that indicates network addresses covered by thoseprefixed addresses. The first set comprises a global routing prefixedaddress, which can be used by any backhaul network to route networktraffic to site A. The second set comprises a prefixed address unique tobackhaul network 106, and is for use by backhaul network 106 only whenrouting network traffic to site A. The third set indicates a set ofthree prefixed addresses, with one of the prefixed addressescorresponding to routing of backhaul network 105 instead of backhaul106, namely prefixed address {2}.

Announcement message 173 is transferred for delivery to backhaul network105 over link 156, and backhaul network 105 will employ information inannouncement message 173 when selecting routes for traffic addressed tosite B that has network addressing corresponding to any of the prefixedaddresses. Announcement message 173 indicates three sets of prefixedaddresses, namely {4}, {5}, and {4, 5, 6}. The first two sets includemore specific prefixes than the third set which has a less specificprefix and also includes the first two prefixes. The first two sets aretypically given preferred status with routing equipment when selectingroutes for traffic that indicates network addresses covered by thoseprefixed addresses. The first set comprises a global routing prefixedaddress, which can be used by any backhaul network to route networktraffic to site B. The second set comprises a prefixed address unique tobackhaul network 105, and is for use by backhaul network 105 only whenrouting network traffic to site B. The third set indicates a set ofthree prefixed addresses, with one of the prefixed addressescorresponding to routing of backhaul network 106 instead of backhaul105, namely prefixed address {6}.

Announcement message 174 is transferred for delivery to backhaul network106 over link 157, and backhaul network 106 will employ information inannouncement message 174 when selecting routes for traffic addressed tosite B that has network addressing corresponding to any of the prefixedaddresses. Announcement message 174 indicates three sets of prefixedaddresses, namely {4},{6}, and {4, 5, 6}. The first two sets includemore specific prefixes than the third set which has a less specificprefix and also includes the first two prefixes. The first two sets aretypically given preferred status with routing equipment when selectingroutes for traffic that indicates network addresses covered by thoseprefixed addresses. The first set comprises a global routing prefixedaddress, which can be used by any backhaul network to route networktraffic to site B. The second set comprises a prefixed address unique tobackhaul network 106, and is for use by backhaul network 106 only whenrouting network traffic to site B. The third set indicates a set ofthree prefixed addresses, with one of the prefixed addressescorresponding to routing of backhaul network 105 instead of backhaul106, namely prefixed address {5}.

Cache node 111-112 each receives (203) content at the sites overselected ones of the packet networks responsive to origin contentrequests that indicate prefixed source addresses. Origin contentrequests can be transferred to origin server 130 by any of cache nodes111-112 over a selected pathway, such as ones of links 154-157 orbackhaul networks 105-106. However, a cache node typically desires tocontrol the return or response pathway which is used to route responsestransferred by origin server 130. Source addresses used in requeststransferred by the cache nodes can be used to direct routes used fortraffic directed to the cache nodes. Backhaul network 105 might bepreferred over backhaul network 106 in some cases, such as when backhaulnetwork 105 is currently less loaded or has lower latency, among otherconsiderations. Conversely, backhaul network 105 might be in a degradedstate which would make cache nodes prefer backhaul network 106. Ofcourse, other considerations on selecting a backhaul network can betaken into account, including latency, loading, operational status,cost, day/time, or other considerations.

In a first example, cache node 111 at site A can request origin contentfrom origin server 130, as indicated by origin request 180. For example,cache node 111 might receive a content request from an end user devicefor content that is not yet cached by cache node 111 or has changedsince last cached by cache node 111. Responsively, cache node 111 canretrieve origin content from origin server 130. Origin request 180 caninclude a source address for cache node 111 which corresponds to a routeover which cache node 111 prefers to receive the response to the originrequest. The source address in origin request 180 might be in a /44space that corresponds to backhaul network 105, or alternatively tobackhaul network 106. Then origin server 130 transfers response 182 fordelivery to destination address provided as the source address cachenode 111 in origin request 180, and routing elements of the variouspacket links and packet networks will select routes to cache node 111based on the source address.

In a second example, cache node 112 at site B can request origin contentfrom origin server 130, as indicated by origin request 181. For example,cache node 112 might receive a content request from an end user devicefor content that is not yet cached by cache node 112 or has changedsince last cached by cache node 112. Responsively, cache node 112 canretrieve origin content from origin server 130. Origin request 181 caninclude a source address for cache node 112 which corresponds to a routeover which cache node 112 prefers to receive the response to the originrequest. The source address in origin request 181 might be in a /44space that corresponds to backhaul network 105, or alternatively tobackhaul network 106. Then origin server 130 transfers response 183 fordelivery to destination address provided as the source address cachenode 112 in origin request 181, and routing elements of the variouspacket links and packet networks will select routes to cache node 112based on the source address.

This configuration of announced sets of prefixed addresses and selectivesource addressing used by the cache nodes can advantageously provide formore efficient routing and automatic failover in the event that aselected backhaul network fails. For example, if a source addresscorresponding to prefixed address {2} is employed by cache node 111 toroute return traffic over backhaul network 105, and backhaul network 105becomes unreachable or fails, then the return traffic can automaticallybe routed by other backhaul networks using the announced sets ofprefixed addresses. Backhaul network 106 can receive the return trafficand identify that the address corresponds to prefixed address {2} whichis routable by backhaul network 106 using the third “set” of prefixedaddresses that comprises {1, 2, 3}. In other examples, a particularbackhaul network might not be selected, and the global routing prefixedaddress {1} is employed which can be routed by any network to which thatprefixed address is announced. In another example, if a source addresscorresponding to prefixed address {6} is employed by cache node 112 toroute return traffic over backhaul network 106, and backhaul network 106becomes unreachable or fails, then the return traffic can automaticallybe routed by other backhaul networks using the announced sets ofprefixed addresses. Backhaul network 105 can receive the return trafficand identify that the address corresponds to prefixed address {6} whichis routable by backhaul network 105 using the third “set” of prefixedaddresses that comprises {4, 5, 6}. In other examples, a particularbackhaul network might not be selected, and the global routing prefixedaddress {4} is employed which can be routed by any network to which thatprefixed address is announced.

In further operation, cache nodes 111-112 each delivers (204) content toend user devices responsive to end user content requests. For example,end user device 120, among others, can issue content requests to any ofcache node 111-112 which are serviced by those cache nodes by deliveringthe requested content to the end user devices. FIGS. 6-9 discuss thecontent request process using a Virtual IP (VIP) address scheme.

Returning to the elements of FIG. 1, content delivery network (CDN) 110can include multiple sites which each include one or more cache nodes.CDN 110 can also include network routing equipment, packet handlingequipment, network links, management systems, and other elements.Content delivery network 110 handles delivery of network content to enduser devices, such as end user device 120. The network content includesweb content, media content, videos, audio, pictures, news, databaseinformation, and the like. Cache nodes of content delivery network 110,such as cache nodes 111-112, cache content for delivery to end userdevices. The content can be originated at various other systems, such asorigin server 130. In some examples, network content includes dynamicnetwork content, and processes executed by cache nodes 111-112 createthe dynamic content.

Cache nodes 111-112 can each include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of cache nodes 111-112 can each include software such as anoperating system, logs, databases, utilities, drivers, caching software,networking software, and other software stored on non-transitorycomputer-readable media.

End user device 120 can be a user device, subscriber equipment, customerequipment, access terminal, smartphone, personal digital assistant(PDA), computer, tablet computing device, e-book, Internet appliance,media player, game console, smartwatch, or some other user communicationapparatus, including combinations thereof. Although one end user deviceis shown in FIG. 1, it should be understood that any number of end userdevices can instead be included, and distributed over a large geographicarea.

Origin server 130 can include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of origin server 130 can include software such as an operatingsystem, logs, databases, utilities, drivers, networking software, andother software stored on a computer-readable medium.

Backhaul networks 105-106 each comprise one or more packet networksconfigured to route packet communications between endpoints over networklinks. Backhaul networks 105-106 can include routers, bridges, switches,management systems, network links, and other network routing andhandling equipment, including combinations thereof. Typically, eachbackhaul networks is operated by a distinct service operator, serviceprovider, or company to provide Internet routing services to a varietyof customers. In some examples, each of backhaul networks 105-106comprise long-haul communication service providers and route packetcommunications over network links between smaller local ISPs.

Control node 140 can include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of control node 140 can include software such as an operatingsystem, logs, databases, utilities, drivers, caching software,networking software, and other software stored on non-transitorycomputer-readable media.

DNS system 101 performs IP address translation services for end userdevices, such as translating domain names into IP addresses. In someexamples, DNS system 101 delegates domain name translation to anotherDNS system, such as one included in content delivery network 110. Insuch examples, the delegated DNS system in content delivery network 110can be included in control node 140 or other equipment. DNS system 101can include communication interfaces, network interfaces, processingsystems, computer systems, microprocessors, storage systems, storagemedia, or some other processing devices or software systems, and can bedistributed among multiple devices. Examples of DNS system 101 caninclude software such as an operating system, logs, databases,utilities, drivers, caching software, networking software, and othersoftware stored on non-transitory computer-readable media.

Communication links 150-159 each use metal, glass, optical, air, space,or some other material as the transport media. Communication links150-159 can each use various communication protocols, such as wirelesscommunications, cellular communications, Long Term Evolution (LTE), IEEE802.11 (WiFi), Internet Protocol (IP), Ethernet, synchronous opticalnetworking (SONET), hybrid fiber-coax (HFC), circuit-switched,communication signaling, or some other communication format, includingcombinations, improvements, or variations thereof. Communication links150-159 can each be a direct link or can include intermediate networks,systems, or devices, and can include a logical network link transportedover multiple physical links. In some examples these intermediatenetworks include local Internet Service Providers (ISPs) through whichendpoints, such end user device 120 or origin server 130, receive locallast-mile access to the Internet and to backhaul networks 105-106.

Although one main link for each of links 150-159 is shown in FIG. 1, itshould be understood that links 150-159 are merely illustrative to showcommunication modes or access pathways. In other examples, further linkscan be shown, with portions of the further links shared and used fordifferent communication sessions or different content types, among otherconfigurations. Communication links 150-159 can each include manydifferent signals sharing the same associated link, as represented bythe associated lines in FIG. 1, comprising resource blocks, accesschannels, paging channels, notification channels, forward links, reverselinks, user communications, communication sessions, overheadcommunications, carrier frequencies, other channels, timeslots,spreading codes, transportation ports, logical transportation links,network sockets, packets, or communication directions.

As a specific example of the prefixed addressing employed in theexamples herein, FIG. 3 is presented. FIG. 3 illustrates address space300 which shows an example breakdown of the 128-bit address space of anIPv6 address. The prefixed indicators, such as /32, /36, and the like,indicate how many of the most significant digits of the address arerelevant for routing purposes. For example, a /32 prefix indicates thatthe upper-most 32 bits of an address are considered. It should beunderstood that the addressing and prefixing shown in FIG. 3 is merelyone implementation example. The various masking and prefixing employedcan be variable in size and extent, such as due to a size or extent ofthe associated CDN. Other examples can use a similar addressing schemefor smaller CDNs (i.e. only employing a /36 for VIP and infrastructure),or the addressing scheme could be tailored to fit a quantity of providerplanes, such as only a single provider plane in a base example.

In the example in FIG. 3, a /29 prefix corresponds to the entire contentdelivery network, and indicates that traffic should be routed to thecontent delivery network, such as CDN 110 in FIG. 1. A /32 prefixcorresponds to an optional scope indicator, which can be used in theexamples herein to delineate between an “infrastructure” scope and avirtual IP or “VIP” scope. In other examples, completely distinctaddress spaces can be employed for each of the infrastructure and VIPaddresses. For example, a VIP root prefix can be established asAAAA::/32 and an infrastructure root prefix can be established asDDDD::/32. Other address schemes are possible. A detailed view 301 showsa representative truth table for bits associated with the /29 and /32prefixes. Other bits are spares or reserved for future expansion, suchas /31 bits. The infrastructure prefix provides for operations such asin FIGS. 1-2 and 4, for routing traffic to a specific destination, butover a selectable routing pathway. The VIP prefix provides foroperations such as in FIGS. 6-8, for routing traffic to one-of-manydestinations which are selected en route based on location, latency, orother performance factors, to provide the most performance for contentdelivery to end users. In the infrastructure examples, a specificendpoint is desired, such as for delivery of origin content to aspecific cache node. In contrast, the VIP examples do not have specificendpoints and instead route traffic based on performance given to an enduser.

Further discussing the prefix types, a /40 indicates a particular site.The site can comprise a geographic location but can also have lessphysical distinctions than mere physicality. For example, a site canspan more than one POP. A site might indicate a particular data centeror multiple data centers that serve a particular geographic area orserve links groups by related traffic latencies. Inbound locator /44 canindicate a particular cache node or collection of cache nodes which arein a load-balancing configuration and serve content as a single node.Segment locator /48 can segregate network traffic among differentcontent types, such as video, audio, web page content, or other trafficsegregations. Typically, only /48 specificity is reported to networkproviders in announcement messages, and further prefixing is reservedfor routing local to a site or within a POP or cache node. For example,a /64 prefix can be employed for content-provider specific segregationor tracking, or might be employed for load balancing among cache nodesat a site or POP.

The remaining least-significant bits in address space 300 beyond /64 canbe employed for endpoint addressing, such as network addresses forspecific endpoints, network interface cards, and the like. However, insome of the examples herein, these lower 64 bits can be employed forother purposes, such as functional addressing. This functionaladdressing can be selected to target a particular endpoint or node.

Table 310 illustrates different uses of the prefixed notation in theexamples herein, where a distinction is made between the infrastructurespace usage and the VIP space usage. Further details of theinfrastructure space are shown in FIG. 5, and further details on the VIPspace are shown in FIG. 9.

To further illustrate operation using infrastructure address spaces,FIG. 4 is presented. FIG. 4 is a sequence diagram illustrating operationof system 100 found in FIG. 1. FIG. 4 adds an additional element, namelyISP 409, positioned between origin server 130 and backhaul networks105-106. ISP 409 can comprise a local network access provider for originserver 130 to receive network access.

In FIG. 4, site A and site B both announce various sets of prefixednetwork addresses to associated ones of backhaul networks 105-106.Specifically, site A transfers announcement message A for delivery tobackhaul network 105 and announcement message A′ for delivery tobackhaul network 106. Similarly, site B transfers announcement message Bfor delivery to backhaul network 105 and announcement message B′ fordelivery to backhaul network 106. Although FIG. 4 shows “site A” and“site B” transferring the announcement messages, it should be understoodthat these messages can be transferred by a control node, managementnode, or cache node, such as control node 140 in FIG. 1, among othernodes.

Responsive to receiving the announcement messages, backhaul networks105-106 each configure routing equipment, such as by updating routingtables used in routers and other packet routing systems, to reflect thecontent of the announcement messages. Typically, the routing equipmentof backhaul networks 105-106 prefers more specific route indicationsthan less specific route indications, and thus the sets of routes thatindicate only a single prefixed address, namely {1}, {2}, {3}, {4}, {5},{6}, will be prioritized for routing traffic versus less specific routesets, namely {1, 2, 3} and {4, 5, 6}.

As discussed above, prefixed addresses {1} and {4} comprise globalrouting prefixed addresses which can be employed by any routing elementto route network traffic to the associated site. In contrast, prefixedaddresses {2}, {3}, {5}, and {6} comprise provider-specific prefixedaddresses which are employed by a specific backhaul network to routetraffic over that backhaul network to reach the site. Specifically,prefixed address {2} and {5} indicate routing over backhaul network 105and prefixed addresses {3} and {6} indicate routing over backhaulnetwork 106.

Site A and site B may have cache nodes which desire to retrieve contentfrom origin server 130, such as due to caching operations or end userdevice activity with respect to the cache nodes. To ensure delivery ofthe requested origin content from origin server 140 to a requestingcache node, the infrastructure addressing scheme discussed above isemployed to seed the backhaul networks with prefixed addresses which canbe used to route traffic accordingly. After the announcement messageshave been propagated to appropriate backhaul networks or other networkrouting systems, then ones of cache node 111-112 can request contentfrom origin server 130 using a source address that corresponds to notonly the requesting cache node, but also to a preferred propagationpathway for the content. Specifically, cache node 111 can requestcontent from origin server 130 with a source address employed inassociated packets that corresponds to a preferred backhaul providerover which the return traffic is to be routed. In this example, cachenode 111 indicates a source address that falls within the space definedby prefixed address {2} and thus specifies that return traffic is to berouted over backhaul network 105. The example address shown in FIG. 4 is{2} 11.2222.3333.4444.5555.6666 which is shorthand for the prefixedportion corresponding to /40 prefixed address {2} and a specific addressfor reaching cache node 111. It should be understood that this addressis merely exemplary.

Normally, origin server 130 responsively transfers origin content fordelivery to the address indicated as a source in the content request,but instead having that address as the destination, namely{2}11.2222.3333.4444.5555.6666. Origin server 130 can transfer this overISP 409, which interprets the address as corresponding to traffichandled by backhaul network 105. However, in this example, backhaulnetwork 105 might experience a failure, such as an outage due toequipment failure or DDoS attack, or other issue. Thus, the returntraffic transferred by origin server 130 cannot be transferred overbackhaul network 105 using the specified destination address.

In FIG. 1, announcement messages were transferred to all providers whichinclude a set of multiple prefixed addresses {1, 2, 3} and {4, 5, 6}.Normally, these sets are not used if a more specific route exists, suchas a set with a single prefixed address {2} for backhaul network 105.However, when a route becomes unreachable, then these sets of multipleprefixed addresses can be used to direct routing. In this example, siteA will cease announcing to backhaul network 105, which has the effect ofwithdrawing route entry {2} from the Internet (since {2} was onlyannounced to backhaul network 105). When attempting to route traffic foraddress {2}11.2222.3333.4444.5555.6666, the set corresponding to {1, 2,3} is used which will cause associated traffic to fallback over backhaulnetwork 106 using either a route for {1} or {3}. Thus, even if aprovider or backhaul network fails that is specified in using a specificaddress, the traffic can automatically fallback or failover to adifferent route using the other sets with multiple prefixed addressesthat are transferred to other providers using announcement messages. Thetraffic transferred by origin server 130 can then reach the intendeddestination of cache node 111.

FIG. 4 shows a further example operation of site B. In FIG. 4, site Btransfers announcements messages B and B′ as discussed above. Site Btransfers announcement message B for delivery to backhaul network 105and announcement message B′ for delivery to backhaul network 106. Cachenode 112 can request content from origin server 130 with a sourceaddress employed in associated packets that corresponds to a preferredbackhaul provider over which the return traffic is to be routed. In thisexample, cache node 112 indicates a source address that falls within thespace defined by prefixed address {5} and thus specifies that returntraffic is to be routed over backhaul network 105. The example addressshown in FIG. 4 is {5}22.7777.8888.9999.AAAA.BBBB which is shorthand forthe prefixed portion corresponding to /40 prefixed address {5} and aspecific address for reaching cache node 112. It should be understoodthat this address is merely exemplary.

The example operation of site B in FIG. 4 illustrates how a cache nodeat a site can initially transfer a content request over a first backhaulnetwork but specify that the content is to be delivered over a secondbackhaul network. Specifically, the content request is transferred bycache node 112 for delivery to origin server 130 over backhaul network106. This is a different backhaul network over which cache node 112desires to receive a response from origin server 130. Responsive to thecontent request, origin server 130 transfers origin content with adestination address as {5}22.7777.8888.9999.AAAA.BBBB. Since thisaddress corresponds to the prefixed address announced to backhaulnetwork 106, this traffic is routed over backhaul network 106 fordelivery to cache node 112.

To further illustrate the address space used in the infrastructureexamples herein, FIG. 5 is presented. FIG. 9 includes further exampleaddress space designations which are used for the VIP routing discussedherein. FIG. 5 illustrates several tables, each of which indicates morespecific prefixed addressing as one moves through a hierarchical addressspace. Digits or names under discussion for the specific prefix areunderlined for emphasis in FIG. 5. CDN space 501 indicates an upper-mostlevel of address prefixing which corresponds to a /32 prefix andindicates between infrastructure space and virtual IP (VIP) spacediscussed in the subsequent figures. In this example, one bit is used tospecify infrastructure vs. VIP, and future capacity can be reserved inFIG. 5 for expansion to more bits. However, it should be understood thatthis is merely one example usage of infrastructure vs. VIP addressschemes. In other examples, completely different address spaces can beemployed for each of the infrastructure and VIP addresses. For example,a VIP root prefix can be established as AAAA::/32 and an infrastructureroot prefix can be established as DDDD::/32. Other address schemes arepossible.

Since infrastructure is discussed in FIG. 5, the next table illustratesinfrastructure space 502. Infrastructure space 502 comprises a /40prefix and each row in table 502 includes a classless interdomainrouting (CIDR) prefix as well as a partially qualified domain name(PQDN). As can be seen in table 502, two address digits are employed forthe infrastructure space, and thus 256 total entries can be included. Asa specific implementation, only every fourth entry is used in FIG. 5,with intervening entries reserved for future expansion. Each row intable 502 corresponds to a different site of a CDN, which can correspondto site A and site B found in FIG. 1, although variations are possible.

Drilling down to a specific entry for the row corresponding to prefixedaddress “2001:DB40:0000::/40” and PQDN “.SITEA.INF.ACME.OURCDN.NET,”site space 503 is shown which corresponds to /44 prefixes. Each entry intable 503 corresponds to a different provider over which traffic can berouted. For example, FIG. 1 includes two providers, namely backhaulnetworks 105-106. Table 503 uses /44 prefixed addressing to specifyspecific providers for use in transferring network traffic over thoseproviders as selected during live operation. Sixteen (16) total locatorsare used in table 503, leading to 15 total providers plus one ‘global’address prefix which can be used by any provider to route traffic. Aswith table 502, each row in table 503 also includes a CIDR prefix aswell as a PQDN which corresponds to a provider or global designation.

Drilling down to a specific entry for the row corresponding to prefixedaddress “2001:DB40:0010::/44” and PQDN“.PROVIDERA.SITEA.INF.ACME.OURCDN.NET,” segment space 504 is shown whichcorresponds to /48 prefixes. Each entry in table 504 corresponds to adifferent traffic segment within a site over which traffic can berouted. For example, traffic segments can segregate traffic according todifferent traffic types, traffic handling equipment, traffic purposes,or other distinctions. In FIG. 5, the segments include primary, control,and video. The “primary” segment can be used for normal content trafficor general traffic, the “control” segment can be used for back-endmanagement and control traffic, and the “video” segment can be a specialsegment for handling streaming video. Other distinctions and segmentscan be employed, and FIG. 5 shows up to 16 different segments areemployed in this example. As with table 503, each row in table 504 alsoincludes a CIDR prefix as well as a PQDN which corresponds to a segment.

In the infrastructure routing realm, all endpoints are individuallyaddressable. In a first example, every infrastructure IP address has aone-to-one mapping with a physical device. In this example, IPv6 isemployed and not IPv4, and thus every location from which a deviceconnects to the Internet would announce a single IPv6 prefix to theglobal routing table. This prefix would aggregate all of theinfrastructure IP addresses for the devices contained within thatlocation. A site, as discussed herein, can conceptually be viewed ashaving a single point of attachment to the Internet. This point ofattachment can be to multiple providers, such as multiple backhaulnetworks or multiple ISPs, across multiple links, but topologicallythere is a straight cut across a planar embedding of the CDN networkgraph which can completely partition the site from the outside world.Sites have grown in complexity both in the quantity of devices containedand the types of functions these devices perform (e.g. spines, switches,out-of-band management, Linux containers, protocol data units).

A site can be further subdivided into logical units from a networkingperspective, such as using segments. A segment can comprise a meshed setof switches and hosts which share one or more IPv4 subnets, therebysharing the same IPv4 broadcast domain. These segments can be referencedor named by a number of hosts that are involved. These terms, however,refer to specific instantiations of a network architecture. Thedefinition of a segment can thus be defined based on an explicit networkcapability, and one which is used by many services. As an example, someservices might not work across hosts in different segments. To expand onthe definition of site, a site can comprise a collection of segmentswhich connects to the Internet from a single point of attachment. Theterm “datacenter” has been used frequently in a similar fashion to theterm “site,” but the term “datacenter” is more ambiguous, and can alsorefer to other logical or physical groupings.

As a further example of the elements and operations of VIP addressrouting, FIG. 6 is presented. FIG. 6 is a system diagram illustratingcommunication system 600. Communication system 600 includes CDN 610which further includes a plurality of POPs, which can each compriseother physical or logical distinctions. Each POP includes a plurality ofcache nodes which cache content for delivery to end user devices. POP Aincludes cache node 611 and POP B includes cache nodes 612-614, althoughfurther POPs and cache nodes can be included in other examples. POP Balso includes an example detailed view of a POP which includes aplurality of cache nodes 612-614 which are communicatively coupled viaroute node 615. In contrast with the infrastructure examples shown inFIG. 1, the examples shown in FIGS. 6-7 relate to VIP routing, althoughinfrastructure routing can also be employed, such as to retrieve contentfrom origin server 630 or for return traffic of end user device 620.

CDN 610 is communicatively coupled to a plurality of backhaul packetnetworks, namely backhaul network 605 and backhaul network 606 in FIG.6. End user devices 620 can request content from any of the cache nodesin FIG. 6 and can responsively receive content transferred by the cachenodes over associated network links and backhaul networks. Origin server630 can include one or more server elements which originate contentwhich is cached by the cache nodes.

In operation, cache nodes 611-614 cache content of at least originserver 630. This content can include web pages, media content, data,executable code, scripting content, among other types of contentdeliverable over backhaul networks 605-606. Cache nodes 611-614 delivercontent upon request to end user device 620, or other end user devices,over associated ones of backhaul networks 605-606. By caching thecontent of origin server 630 or other origin servers, cache nodes611-614 can provide faster access to this content to end user devices,such as end user device 620. In many examples, POP A and POP B, amongother POPs, are distributed over a geographic area for lower latencyaccess to content normally provided by one or more origin servers. Cachenodes 611-614 can also cache dynamic content, such as content generatedresponsive to activities of end user device 620.

In FIG. 6, origin server 630 communicates over any of network links650-651, which can include further packet networks, such as one or morelocal ISPs through which origin server 630 communicates Likewise, enduser device 620 communicates over any of network links 652-653, whichcan include further packet networks, such as one or more local ISPsthrough which end user device 620 communicates. POP A of CDN 610communicates over any of network links 654-655, and POP B of CDN 610communicates over any of network links 656-657.

To aid in retrieval of content or to identify network addresses forvarious element of CDN 610, domain name system (DNS) system 601 isincluded. When a domain name is employed for a particular networkendpoint or for network content, a DNS request can be issued to DNSsystem 601 which can respond with a network address associated with thedomain name. In this example, a hierarchical DNS structure is employed,with a top-level DNS system 601 deferring to a recursive DNS node 645employed by CDN 610 for performing domain name translations. In furtherexamples, a local ISP associated with end user device 620 might have aDNS node which can defer DNS queries to recursive DNS node 645, amongother DNS nodes.

Returning to the elements of FIG. 6, content delivery network (CDN) 610can include multiple POPs which each include one or more cache nodes.CDN 610 can also include network routing equipment, packet handlingequipment, network links, management systems, and other elements.Content delivery network 610 handles delivery of network content to enduser devices, such as end user device 620. The network content includesweb content, media content, videos, audio, pictures, news, databaseinformation, and the like. Cache nodes of content delivery network 610,such as cache nodes 611-614, cache content for delivery to end userdevices. The content can be originated at various other systems, such asorigin server 130. In some examples, network content includes dynamicnetwork content, and processes executed by cache nodes 611-614 createthe dynamic content.

Cache nodes 611-614 can each include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of cache nodes 611-114 can each include software such as anoperating system, logs, databases, utilities, drivers, caching software,networking software, and other software stored on non-transitorycomputer-readable media.

Route node 615 can include routers, load balancers, communicationinterfaces, network interfaces, processing systems, computer systems,microprocessors, storage systems, storage media, or some otherprocessing devices or software systems, and can be distributed amongmultiple devices. Examples of route node 615 can include software suchas an operating system, logs, databases, utilities, drivers, networkingsoftware, and other software stored on a computer-readable medium.

End user device 620 can be a user device, subscriber equipment, customerequipment, access terminal, smartphone, personal digital assistant(PDA), computer, tablet computing device, e-book, Internet appliance,media player, game console, smartwatch, or some other user communicationapparatus, including combinations thereof. Although one end user deviceis shown in FIG. 6, it should be understood that any number of end userdevices can instead be included, and distributed over a large geographicarea.

Origin server 630 can include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of origin server 630 can include software such as an operatingsystem, logs, databases, utilities, drivers, networking software, andother software stored on a computer-readable medium.

Backhaul networks 605-606 each comprise one or more packet networksconfigured to route packet communications between endpoints over networklinks. Backhaul networks 605-606 can include routers, bridges, switches,management systems, network links, and other network routing andhandling equipment, including combinations thereof. Typically, eachbackhaul networks is operated by a distinct service operator, serviceprovider, or company to provide Internet routing services to a varietyof customers. In some examples, each of backhaul networks 605-606comprise long-haul communication service providers and route packetcommunications over network links between smaller local ISPs.

Management system 640 can include communication interfaces, networkinterfaces, processing systems, computer systems, microprocessors,storage systems, storage media, or some other processing devices orsoftware systems, and can be distributed among multiple devices.Examples of management system 640 can include software such as anoperating system, logs, databases, utilities, drivers, caching software,networking software, and other software stored on non-transitorycomputer-readable media.

DNS system 601 performs IP address translation services for end userdevices, such as translating domain names into IP addresses. In someexamples, DNS system 601 delegates domain name translation to anotherDNS system, such as DNS node 645 included in content delivery network610. In such examples, the delegated DNS system in content deliverynetwork 610 can be included in management system 640 or other equipment.DNS system 601 can include communication interfaces, network interfaces,processing systems, computer systems, microprocessors, storage systems,storage media, or some other processing devices or software systems, andcan be distributed among multiple devices. Examples of DNS system 601can include software such as an operating system, logs, databases,utilities, drivers, caching software, networking software, and othersoftware stored on non-transitory computer-readable media.

Communication links 650-659 each use metal, glass, optical, air, space,or some other material as the transport media. Communication links650-659 can each use various communication protocols, such as wirelesscommunications, cellular communications, Long Term Evolution (LTE), IEEE802.11 (WiFi), Internet Protocol (IP), Ethernet, synchronous opticalnetworking (SONET), hybrid fiber-coax (HFC), circuit-switched,communication signaling, or some other communication format, includingcombinations, improvements, or variations thereof. Communication links650-659 can each be a direct link or can include intermediate networks,systems, or devices, and can include a logical network link transportedover multiple physical links. In some examples these intermediatenetworks include local Internet Service Providers (ISPs) through whichendpoints, such end user device 620 or origin server 130, receive locallast-mile access to the Internet and to backhaul networks 605-606.

Although one main link for each of links 650-659 is shown in FIG. 6, itshould be understood that links 650-659 are merely illustrative to showcommunication modes or access pathways. In other examples, further linkscan be shown, with portions of the further links shared and used fordifferent communication sessions or different content types, among otherconfigurations. Communication links 650-659 can each include manydifferent signals sharing the same associated link, as represented bythe associated lines in FIG. 6, comprising resource blocks, accesschannels, paging channels, notification channels, forward links, reverselinks, user communications, communication sessions, overheadcommunications, carrier frequencies, other channels, timeslots,spreading codes, transportation ports, logical transportation links,network sockets, packets, or communication directions.

To further illustrate example operations of system 600, FIG. 7 isprovided. FIG. 7 is a flow diagram illustrating a method of operatingsystem 600. The operations of FIG. 7 are referenced belowparenthetically, and can be performed by various equipment of CDN 610,such as DNS node 645, management system 640, or elements of POP A or POPB, such as cache nodes 611-614 or other elements local to the respectivePOP.

In FIG. 7, for content cached by cache nodes of content delivery network610, management system 640 establishes (701) top-level domain namerelationships for use by a top-level DNS system to recurse DNS queriesto a DNS system or node managed by content delivery network 610. FIG. 6shows content 664 cached by associated cache nodes 611-614. Both of thecache nodes can cache similar content and provide caching services toend user devices in different geographic areas associated with POP A andPOP B. Initially, this content might not be cached in cache nodes611-614 and can be retrieved from origin server 630. Infrastructurerouting might be employed to retrieve the content from origin server630, as discussed above. Once cached, then cache nodes 611-614 candistribute the content as requested to end user devices in a lowerlatency manner than origin server 630.

In order for end user devices to receive the content, end user devices,such as end user device 620, can request the content in one or morecontent requests issued to a network address associated with either POPA or POP B. These network addresses can be more specific than a POP orless specific than a POP, as will be discussed below. However, before anetwork address can be identified for use in a content request, a domainname translation process occurs. This domain name translation processconverts a plain-language domain name, such as www.beta.net, into anumerical network address. The domain name, and associated server names,directories, pathways, parameters, and other items, are contained in auniform resource identifier or uniform resource locator (URL).

In the example shown in FIG. 6, a multi-level domain name translationstructure is presented. Specifically, a top-level domain nametranslation node, namely DNS system 601, is employed to perform theinitial translation of a domain name into a further, recursive, domainname or network address. End user device 620 can issue a domain nametranslation query 660 to DNS system 601 and DNS system 601 canresponsively issue a recursive DNS query to DNS node 645, or to otherDNS nodes. In this example, DNS system 601 then issues recursive DNSquery 662 to DNS node 645. The recursive DNS query 662 is then handledby DNS node 645, which is managed by CDN 610.

However, before DNS system 601 can determine what to translate domainnames into responsive to queries or to which recursive DNS nodes totransfer DNS queries, CDN 610 must announce one or more domain nametranslation records to DNS system 601, among other DNS systems. In FIG.6, announce message 670 includes at least two records, corresponding torecords {7} and {8}. These records can contain more than one domain nametranslation entry. The entries are used by DNS system 601 fortranslation of domain names into either network addresses or torecursive network identifiers, such as recursive domain names, which arethen further handled by DNS node 645 for translation into networkaddresses usable by end user device 620 for retrieving content cached byCDN 610. DNS node 645 stores these further domain name translationrecords in computer-readable media 646, which can comprise a database,table, or other data structures.

In FIG. 6, each backhaul provider, such as backhaul networks 605-606,might have different associated DNS systems or DNS nodes, and can thushave DNS entries assigned thereto using /36 prefixed addresses indicatedby DNS entries {7}. These provider-specific DNS entries {7} can be usedto translate a domain name presented by an end user device into afurther domain name that can be used to reach a particular recursive DNSnode of CDN 610, such as a DNS node specific to that provider or regionin which the provider operates. Although only one DNS system 610 and DNSnode 645 are shown in FIG. 6, more than one can be employed when eachbackhaul provider has an associated DNS node that services end userdomain name translation queries. This structure can be employed globallysuch as when CDN 610 can cover many countries, and each country orsub-region within a country has an associated top level DNS translationnode. These individual top level DNS nodes can be seeded with DNSrecords by CDN 610 which correspond to backhaul providers that are localto that country or region, and thus direct recursive translations towardlocal DNS nodes. For the purposes of simplicity, FIG. 6 shows only oneDNS system 601 and DNS node 645.

To reach a particular DNS node, such as DNS node 645, the top level DNSnode employs IPv6 addresses that correspond to DNS node 645. DNS system601 employs an IPv6 address to reach DNS node 645. In DNS system 601,the entries or records can comprise canonical name records (CNAMErecords) which include a network address to reach DNS node 645, and canbe CNAME records individualized according to the domain name indicatedin the DNS query.

The network addresses included in CNAME records at DNS system 601 cancorrespond to various locators for a recursive DNS system, such as DNSnode 645. In CDN 310, relationships between PQDNs and prefixed networkaddresses can be established which logically track relationships betweenPQDNs and various properties, such as provider identity, end userlocation, and the like, such as a provider-specific example like“.DNS.PROVIDERA.ACME.OURCDN.NET.” Also, global PQDNs can be establishedwhich are provider/location agnostic, such as a ‘global’ routing examplelike “.DNS.GLOBAL.ACME.OURCDN.NET.” IPv6 addresses associated with thePQDNs can be /36 prefixed addresses or can instead be /48 prefixedaddresses which can have active digits that are left allocated toenhance translation speed and prevent blocking of entire subnets when aparticular range of addresses is unreachable.

CDN 610 establishes (702) VIP DNS address translations which translatedomain names recursed from the top-level DNS system 601 into VIP IPv6network addresses used for reaching the content at selected POPs. Query662 may include a domain name, URL, content identifiers, or otherinformation. Query 662 can also include source address information andproperties related to end user device 620. DNS node 645 can processquery 662 to identify an IPv6 address that end user device 620 can useto request content from CDN 610. DNS node 645 can select IPv6 addressesthat correspond to any physical site, POP, or specific cache node.However, in typical examples, DNS node 645 will select an IPv6 addressthat has a /48 address portion corresponding to a particular VIP group.This VIP group can correspond to a site, POP, or other logical orphysical partitioning of the resources of CDN 610.

In one example, DNS node 645 establishes (705) address correlationsbetween prefixed IPv6 network addresses and PQDNs that compriseindicators for a routing provider identifier and a cache node grouping.These indicators or identifiers can be standardized among elements ofCDN 610 and the indicators or identifiers can be used to select amongprefixed IPv6 addresses which correspond to “composite” formations builtup of the indicators or identifiers.

For example, a selected VIP group might correspond to an identifier of“VIPGROUP1” and a selected routing provider might correspond to anidentifier of a “PROVIDERA.” PQDNs can be formed or composited thatinclude these identifiers, and further PQDNs can be composited usingidentifiers associated with other VIP groups and routing providers.Further identifiers can also be included in the PQDNs, such as onesindicating a VIP-type address space (as opposed to an infrastructure orother address space), a company name identifier, a content provideridentifier, a CDN identifier, and a top-level domain identifier. Anexample PQDN of “.VIPGROUP1PROVIDERA.VIP.ACME.OURCDN.NET” could beformed from example individual identifiers. This PQDN can be correlatedin a data structure to a /48 prefixed address of “2001:DB40:1101::/48”and both the PQDN and prefixed address are stored in the data structure,which can be maintained by DNS node 645.

The example PQDN above has several embedded identifiers which can beused to route traffic accordingly, and also allow for several hierarchalfailure modes in case the most specific routing name cannot be used dueto failure or unavailable network resources. The “VIPGROUP1” cancorrespond to any physical or logical partitioning of CDN 610, such asPOP A or a collection of cache nodes at POP A, among other partitioning.“PROVIDERA” can correspond to a certain network service provider, suchas backhaul network 605 in FIG. 6, among other specific providers. “VIP”can indicate that VIP routing is employed and not “infrastructure” asnoted above. “ACME” and “OURCDN” can refer to top level characteristics,such as the entirety of CDN 610 or logical partitioning of CDN 610 intofurther CDNs.

As mentioned above, DNS system 601 issues recursive DNS query 662 to DNSnode 645. DNS node 645 receives (703) this translation query or requestand responsively translates a domain name, server name, or URL includedin query 662 into content addressing information, such as an IPv6network address, to reach the associated content. The selected IPv6address can designate a routing pathway through a selected backhaulnetwork to reach content nodes of a selected POP. DNS node 645 transfersresponse message 663 for delivery to DNS system 601, and DNS system 601transfers response 661 based on response message 663 which includesnetwork addressing information for end user device 620 to reach contentassociated with the original DNS query 660.

The VIP group might be selected by DNS node 645 based on properties ofend user device 620, such as anticipated or measured network latency forparticular POPs, current status of backhaul networks, loading ofbackhaul networks or loading of POPs, load balancing among POPs,geographic location or distances of the POP and the end user devices,country/region of both the POP and the end user device, among otherconsiderations. Once selected, the PQDN and prefixed IPv6 address of theVIP group typically will correspond to a particular provider and to aparticular POP.

Turning to a specific example, DNS node 645 selects a routing providerand cache node grouping for the recursed DNS query. Specifically query662 is received by DNS node 645 and DNS node 645 can process informationincluded with query 662 to select at least a routing provider (706) anda cache node grouping (707).

Turning first to the routing provider, DNS node 645 can identify thedomain name included query 662, along with any further information suchas a source address of the end user device which issued the original DNSquery. This domain name and source address might be best served by aparticular routing provider, such as backhaul network 605, or anothernetwork provider. In some examples, a routing provider is notspecifically selected and instead a provider-agnostic selection is made.DNS node 645 makes a selection of routing provider, or alternatively aglobal routing selection. This selection corresponds to an identifierwhich is standardized by DNS node 645 and CDN 610 for use in buildingPQDNs from constituent portions. For example, when backhaul network 605corresponds to provider A, an identifier can comprise “PROVIDERA.” DNSnode 645 can consider many factors to select a routing provider, such asloading levels of various routing providers, estimated latency for eachrouting provider to provide associated content to end user device 620,routing provider availability, routing provider outages, relativelocations of end user devices and routing providers, geographiclocations of end user devices, routing providers, and cache nodes, ISPsassociated with end user device 620, or other factors to select arouting provider, including combinations thereof.

Turning now to the cache node grouping, DNS node 645 can process thedomain name and source address, along with other information providedwith query 622 to select a cache node grouping. This cache node groupingincludes one or more cache nodes that serve content indicated by thedomain names, and can comprise a site, POP, or span multiple sites orPOPs. In some examples, this cache node grouping is referred to as a VIPgrouping, and many examples herein employ the VIP grouping nomenclature.DNS node 645 selects a cache node grouping that will best serve anycontent requests associated with query 622 that are subsequently issuedby end user device 620. DNS node 645 can consider many factors to selecta cache node grouping, such as loading levels of various cache nodegroupings, estimated latency for each cache node grouping to provideassociated content to end user device 620, content locality (e.g. whichcache nodes presently cache associated content), cache nodeavailability, cache node outages, routing provider outages, relativelocations of end user devices and cache node groupings, geographiclocations of end user devices, routing providers, and cache nodes, ISPsassociated with end user device 620, or other factors to select a cachenode grouping, including combinations thereof.

DNS node 645 forms (708) a composite PQDN from at least a routingprovider indicator and a cache node grouping indicator. As mentionedabove, DNS node 645 can select a specific routing provider (orprovider-agnostic selection) as well as a cache node grouping. These caneach have associated indicators or identifiers, such as PROVIDERA andVIPGROUP1, among other designators. DNS node 645 assembles the variousindicators for the routing provider, cache node grouping, and otherindicators mentioned above, to form a composite PQDN. The PQDN typicallyincludes at least a base domain name associated with the CDN 601 (orother logical CDN), the routing provider indicator, and the cache nodegrouping indicator, among other indicators. Once such collection ofindicators, once assembled into a composite PQDN, can be“.VIPGROUP1.PROVIDERA.VIP.ACME.OURCDN.NET.” These composite PQDNs willvary based on the selections made among the various routing providers,cache node groupings, logical CDNs, or other selections.

DNS node 645 then determines (709) a correlated prefixed IPv6 addressthat corresponds to the composite PQDN using at least the addresscorrelation maintained by DNS node 645. Specifically, data structure 646can include many correlations between PQDNs and prefixed IPv6 addresses,such as seen in FIG. 9. Once a composite PQDN is determined, then thiscan be matched to a prefixed IPv6 address using at least data structure646. An exact match might not occur, and thus varying levels of matchquality can be employed to identify a prefixed IPv6 address thatcorresponds to the composite PQDN.

DNS node 645 determines (710) a “full” IPv6 network address based on thecorrelated prefixed IPv6 addresses and further network address bits toform the full IPv6 network address. Once a prefixed IPv6 address isselected, the prefixed portion might only include enough digits tosatisfy a /36 or /48 prefix. Thus additional fill bits can be includedto create a full 128-bit IPv6 address. These additional bits cancorrespond to predetermined bits, patterned bits, random bits, or can beselected according to routing concerns, endpoint identities/addresses ofa POP, POP, or cache node, or according to other selections, includingcombinations thereof. In many examples, the remaining bits can comprisethe lower 64-bits (IPv6 “identifier” portion) of an IPv6 address insteadof the upper 64-bits (IPv6 “locator” portion) of an IPv6 address.

Once the DNS translation/query process completes and end user device 620has received response 663 indicating content addressing informationdetermined by DNS node 645, such as an IPv6 address, then end userdevice 620 can request content from CDN 610 using the content addressinginformation. In FIG. 6, content request 665 is issued which includes thecontent addressing information and is transferred over any of links652-653. In some examples, end user device 620 receives network accessthrough a local ISP and end user device 620 can issue content request665 through that ISP. Regardless, in FIG. 6, two routing pathways can beselected among, one for backhaul network 105 and one for backhaulnetwork 106. CDN 610 delivers (704) the content to end user devicesresponsive to end user content requests that use the content addressinginformation received from DNS node 645.

Network elements included in the various network links and associatedbackhaul networks 605-606 will route content request 665 according tothe addressing information included in content request 665. Althoughthis addressing information includes a full IPv6 address in typicalexamples, backhaul networks 605-606 may route according to prefixedaddressing that were previously announced, or according to best-effortrouting rules that are established in situ. The addressing information,namely a destination address, included in content request 665, will berouted through an appropriate one of backhaul networks 605-606 accordingto the /48 prefixed portion of that destination address. For example,response 663 might indicate routing over backhaul network 605 to reachPOP A for servicing the content request. Instead, response 663 mightindicate routing over backhaul network 606 to reach POP A. In otherexamples, POP B might be indicated over a selected one of backhaulnetworks 605-606. Thus, content request 665 will route using prefixednetwork addresses which have been reported to routing equipment ofbackhaul network and the Internet at-large, such as done ininfrastructure examples above.

Content request 665 can be routed to a particular POP, such as POP A andthen equipment in POP A can further route the content request to anappropriate cache node. The routing within a POP can be performedaccording to various considerations. In a first example, multiple cachenodes are employed in a POP and a routing node can select a cache nodeaccording to load balancing factors, such as to distribute contentrequests for many users over many cache nodes at a POP. The loadbalancing can include round-robin distribution, selecting a least-loadedcache node, or other distribution schemes. In other examples, aparticular cache node at a POP might be configured to handle contentrequests for particular content, such as for a content type (e.g.pictures, audio, video) or for a particular content provider (e.g. website originator or content creator), and content requests for thatparticular content can be routed within a POP accordingly.

POP B also includes an example detailed view of a POP which includes aplurality of cache nodes 612-614 which are communicatively coupled viaroute node 615. When content requests are received by a POP, such as POPB, various load balancing can occur which distributes the contentrequests among more than one cache node, such as cache nodes 612-614 inFIG. 6. Route note 615 can handle the monitoring of loading of the cachenodes and distribution of content requests within a POP. Thisdistribution can also occur based on content type, traffic segments,POP, logical CDN associations, or other considerations, includingcombinations thereof. Typically, DNS node 645 will respond to DNS lookuprequests with provider-specific prefixed addresses, POP-specificaddresses, or global (provider-agnostic) addresses. When a POP-specificprefixed address is employed, route node 615 can receive the contentrequests and distribute to the cache nodes of the POP as dictated byloading or other considerations. Moreover, when a POP receives a contentrequest that was transferred using global addressing orprovider-specific prefixed addresses, then route node 615 can alsodistribute the content requests according to loading or otherconsiderations.

In addition to intra-POP routing to particular cache nodes, the POPsthemselves can be selected among, typically by DNS node 645. These POPscan be selected according to which POP is estimated to provide the leastlatency for responses to content requests for a particular end userdevice, which can depend upon network conditions, route length/hops,network latency, estimated performance of a backhaul network, geographicregion, geographic distance, among other considerations, includingcombinations thereof. As with intra-POP routing for particular contentproviders or content types, a POP can be selected among according to thecontent requested by end user device 620. Certain POPs might beconfigured to handle content of a particular content provider andcontent requests for such content can be routed thereto. Likewise, acertain POP might be configured to handle certain types of traffic, suchas streaming video, and content requests can be routed thereto whenrequesting streaming video content.

Furthermore, the CDN itself can be selected among by DNS node 645. Thiscan occur when CDN 610 includes more than one logical CDN which arehandled on similar equipment as CDN 610, such as when a particularcustomer or content provider wishes to segregate traffic of thatcustomer from other customers or other traffic handled by the CDN, orspecialized content providers may want to personalize or tailor the CDNactivity and namespace to the content provider. Certain POPs or certainlogical partitions within a POP can be used to handle traffic for theselogical CDNs and the particular addressing selected by DNS node 645 canreflect this based on the domain name requested for translation or otherinformation that accompanies the domain name.

Information regarding the particular routing behavior and indications ofthe various logical partitioning used in directing content requests tocache nodes is embedded in the PQDNs and prefixed addressing maintainedby CDN 610, such as in data structure 646 of DNS node 645. For instance,in one example, “.VIPGROUP1.PROVIDERA.ACME.OURCDN.NET,” the PQDNincludes an indication of the VIP group (VIPGROUP1), the provider orbackhaul network to be used for routing (PROVIDERA), an indicator of thecompany or content provider associated with the content correlated tothe domain name (ACME), and the logical CDN name (OURCDN). Furtherinformation can be included, such as when specific POPs are included(i.e. SITEA). The VIP group can actually designate a POP or set of POPs,among other routing distinctions which allow the traffic for contentrequests to be routed to a routing node which can then intelligentlyselect a final route to a cache node, typically at done in a routingnode of a POP. Moreover, instead of specific POPs or providers, globalrouting indicators can be embedded in the PQDN, which can be routed byany backhaul network to any POP.

Advantageously, the VIP routing scheme employed herein can allow forcontent requests to be delivered to cache nodes even if a particularPOP, provider, or other specified route is unrouteable, unreachable, orfailed. For example, if the IPv6 address in a content request indicatesbackhaul network 605 is to be used for routing the content request, andbackhaul network 605 fails or becomes unable to route traffic (such asdue to DDoS attacking), then DNS node 645 can fallback to other IPv6addresses associated with other PQDNs or prefixed addresses for otherproviders or backhaul networks Likewise, if a POP fails, such as due tonetwork problems, power outages, or DDoS attacking, then a different POPcan be automatically selected by DNS node 645 using the PQDN andprefixed IPv6 address relationships maintained and stored in datastructure 646 of DNS node 645.

To achieve automatic failover routing, the hierarchical format of thePQDN and prefixed IPv6 address in the content request can be employed.Two types of failover can be employed. For new connections, if a firstprovider has failed, addresses can be returned from the“.VIPGROUP1.PROVIDERB.ACME.OURCDN.NET” PQDN. For already establishedconnections, the routing announcement for that provider can bewithdrawn. When sets of addresses are employed, an announcement for aspecific address prefix (i.e. an announcement with a single addressprefix) can be withdrawn and traffic would then fall back onto aremaining less specific announcement (i.e. an announcement with multipleaddress prefixes). In another example, when a PQDN of “. VIPGROUP1.PROVIDERA.ACME.OURCDN.NET” employed, and provider A becomesunrouteable, then a different provider can be selected by changing theprovider “field” of the PQDN to match an identifier of the differentprovider. Likewise, if a particular POP of CDN 610 goes down or becomesunreachable, then another POP can be reached by changing the VIP group“field” of the PQDN to match an identifier of the POP. The VIP groupingallows for more than one POP to be routable with a single PQDN orprefixed IPv6 address. Thus, a VIP group can simulate an anycast styleof routing, where any POP can respond to a content request when includedin the VIP group that is included in the content request addressing.Likewise, once a failure or routing problem is detected, then DNS 645can cease returning network addressing that corresponds to the networkelement that has failed, such as ceasing to provide network addressesfor backhaul network 605 when that network is unrouteable and insteadprovide network addresses routable by backhaul network 606.

To further illustrate operation using VIP address spaces, FIG. 8 ispresented. FIG. 8 is a sequence diagram illustrating operation of system600 found in FIG. 6. FIG. 8 adds an additional element, namely ISP 808,positioned between end user device 620 and backhaul networks 605-606.ISP 808 can comprise a local network access provider for end user device620 to receive network access.

In FIG. 8, DNS nodes of CDN 610 will announce DNS entries to a top-levelDNS 601, such as DNS node 645 announcing records for routing recursiveDNS queries to DNS node 645. Also, DNS node 645 or POP A and POP B canannounce various sets of prefixed network addresses to associated onesof backhaul networks 605-606 or DNS 601, as is performed in theinfrastructure example of FIG. 4. Although FIG. 8 shows DNS node 645transferring the announcement messages, it should be understood thatthese messages can be transferred by a control node, management node, orcache node, such as management node 640 in FIG. 6, among other nodes.

End user device 620 can issue one or more content requests to retrievecontent served by CDN 610. These content requests can arise during userbrowsing of online content, such as web pages in a browser application,or specialized content application. However, the content is typicallyreferenced during browsing as a URL comprising a domain name along withserver names, pathnames, parameters, or other information. Beforecontent can be requested, end user device 620 must determine numericalnetwork addresses that correspond to this URL information. A DNS queryor DNS lookup can be issued by end user device 620 to translate the URLinformation into a numerical address, and in some example thistranslation process might include a multi-step process using ahierarchical DNS structure.

In FIG. 6, a two-level DNS structure is presented, although further DNSlevels or nodes can be employed. End user device 620 issues a DNS lookuprequest to DNS system 601, which can be routed through ISP 808, which insome examples, has a corresponding routing table or DNS node whichindicates which top-level DNS should be employed. DNS system 601responds to the lookup request by issuing a recursive DNS lookup requestto another DNS node, namely DNS node 645 of CDN 610. DNS system 601might include a DNS locator for DNS node 645 with addressing informationto reach DNS node 645, which can include a network address selectedaccording to a CNAME records in DNS system 601 that are provided by CDN610. A recursive DNS request is issued by DNS system 601 for deliveryusing addressing information indicated by the DNS locator or CNAMErecords. DNS node 645 responds to DNS node 610 with addressinginformation for delivery to end user device 620 that indicates anumerical address, among other addressing information, from which enduser device 620 can request content.

Specifically, DNS node 645 responds with a full IPv6 network addresscorresponding to provider A, which is associated with a PQDN of“.VIPGROUP1.PROVIDERA.VIP.ACME.OURCDN.NET,” such as seen in FIG. 9below. Furthermore, VIPGROUP1 is associated with cache nodes of POP A inthis example, although VIP groups can span one or more POPs and one ormore cache nodes. This PQDN correlates to a prefixed IPv6 address, andthese correlations are maintained by at least DNS node 645. ThePQDN-to-prefixed IPv6 address correlations provide for efficientselection of routes and POPs based on provider identities and end userproperties, such as end user network addresses, end user ISPassociations, or end user locations. In FIG. 8, DNS node 645 respondswith a provider-specific IPv6 address of “2001:DB40:1101: . . . ” whichcomprises a first portion which corresponds to the PQDN identified toroute content requests over provider A (backhaul network 605 in thisexample). A second portion, indicated by the ellipses “ . . . ” includesfurther addressing information, such as network address portion whichfurther defines logical subgroups for content or content providing, suchas individual cache nodes, segment types, traffic types, content types,domain names (content originators), or other distinctions.

End user device 620 then issues one or more content requests using thefull IPv6 address (that includes the prefixed IPv6 address) as thedestination address. In this example, the IPv6 network address willcause the content requests to be routed over provider A, such asbackhaul network 605, and be routed to POP A associated with VIPgroup 1. The second portion of the IPv6 address might be ignored byrouting elements and instead only the first portion is considered whenrouting traffic, where the first portion of the IPv6 address isassociated with a prefixed network address previously announced into DNSsystem 601 or ones of the backhaul networks or ISPs.

In some examples, VIP group 1 might comprise many POPs which furthercomprise many cache nodes. In this manner, a routing behavior similar toanycast can be achieved in that any of the POPs/cache nodes in the VIPgroup can respond to the content requests. When many POPs comprise theVIP group, then if a particular POP is unreachable, then another canrespond automatically and without delay. As a specific further example,when POP A includes more than one cache node, POP A can load balanceamong the various cache nodes. Similar to POP B in FIG. 6, POP A caninclude a routing node can receive content requests and distribute amonga plurality of cache nodes based on current loading of the individualcache nodes, among other factors. Whichever cache node receives thecontent request, as shown in FIG. 8, can respond with the requestedcontent for delivery to end user device 620.

A second example is shown in FIG. 8 which is provider-agnostic. In someexamples, provider-agnostic routing can be referred to as global routingor anycast-style routing. In this example, a content request is directedto any POP over any backhaul network.

Specifically, DNS node 645 responds with a full IPv6 network addresscorresponding to provider-agnostic routing, which is associated with aPQDN of “.GLOBAL.VIP.ACME.OURCDN.NET,” such as seen in FIG. 9 below.Furthermore, no VIP group is specified. This PQDN correlates to aprefixed IPv6 address, and these correlations are maintained by at leastDNS node 645. The PQDN-to-prefixed IPv6 address correlations provide forefficient selection of routes and POPs based on provider identities andend user properties, such as end user network addresses, end user ISPassociations, or end user locations. In FIG. 8, DNS node 645 respondswith a provider-agnostic IPv6 address of “2001:DB40:1000: . . . ” whichcomprises a first portion which corresponds to the PQDN identified toroute content requests in a provider-agnostic manner (such asanycast-style). A second portion, indicated by the ellipses “ . . . ”includes further addressing information, such as network address portionwhich further defines logical subgroups for content or contentproviding, such as individual cache nodes, segment types, traffic types,content types, domain names (content originators), or otherdistinctions.

End user device 620 then issues one or more content requests using thefull IPv6 address (that includes the prefixed IPv6 address) as thedestination address. In this example, the IPv6 network address mightcause the content requests to be routed over provider B, such asbackhaul network 606, and be routed to POP B. The second portion of theIPv6 address might be ignored by routing elements and instead only thefirst portion is considered when routing traffic, where the firstportion of the IPv6 address is associated with a prefixed networkaddress previously announced into DNS system 601 or ones of the backhaulnetworks or ISPs.

In some examples, POP B might comprise many POPs which further comprisemany cache nodes. In this manner, a routing behavior similar to anycastcan be achieved in that any of the POPs/cache nodes can respond tocontent requests. If a particular POP is unreachable, then another canrespond automatically and without delay. As a specific further example,when POP B includes more than one cache node, POP B can load balanceamong the various cache nodes. As shown for POP B in FIG. 6, routingnode 615 can receive content requests and distribute among a pluralityof cache nodes 612-614 based on current loading of the individual cachenodes, among other factors. Whichever cache node receives the contentrequest, as shown in FIG. 8, can respond with the requested content fordelivery to end user device 620.

To further illustrate the address space used in the infrastructureexamples herein, FIG. 9 is presented. FIG. 9 includes example addressspace designations which are used for the VIP routing discussed herein.FIG. 9 illustrates several tables, each of which indicates more specificprefixed addressing as one moves through a hierarchical address space.Digits or names under discussion for the specific prefix are underlinedfor emphasis in FIG. 9. CDN space 901 indicates an upper-most level ofaddress prefixing which corresponds to a /32 prefix and indicatesbetween infrastructure space and virtual IP (VIP) space discussed in thesubsequent figures. In this example, one bit is used to specifyinfrastructure vs. VIP, and future capacity can be reserved in FIG. 9for expansion to more bits. However, it should be understood that thisis merely one example usage of infrastructure vs. VIP address schemes.In other examples, completely different address spaces can be employedfor each of the infrastructure and VIP addresses. For example, a VIProot prefix can be established as AAAA::/32 and an infrastructure rootprefix can be established as DDDD::/32. Other address schemes arepossible.

VIP routing is discussed in FIG. 9, and the next table illustratesprovider planes 902. Provider planes 902 each comprises a /36 prefix andeach row in table 902 includes a classless interdomain routing (CIDR)prefix as well as a partially qualified domain name (PQDN). As can beseen in table 902, a single address digit is employed for the providerplanes, and thus 16 total locators can be included. Each row in table902 corresponds to a different provider, such as a backhaul networkprovider, which can correspond to backhaul networks 605-606 in FIG. 6,although variations are possible. A global entry is also included intable 902 which can be provider-agnostic and allow any provider to routeassociated traffic, and this entry is announced across all providers andpeerings. The /36 provider entries in table 902 should be for providerswhich are applicable globally, regional or other providers can beincluded in the VIP space of tables 903-904. A peering entry is alsoincluded in table 902 and is reserved for settlement free connections.

Drilling down to a specific entry for the row corresponding to prefixedaddress “2001:DB42:1000::/36” and PQDN “.PROVIDERA.VIP.ACME.OURCDN.NET,”the VIP address space is shown. The VIP address spaces is comprised ofVIP announces shown in table 903 which are used for global anycast-stylerouting designations (i.e. VIP group-agnostic routing), and specific VIPgroups are shown in table 904. VIP address space entries each comprisesa /48 prefix and each row in tables 903-904 include a CIDR prefix aswell as a PQDN. Tables 903-904 show subdivisions in the VIP spaceindicated by three digits, which lead to 4096 total locators. Table 903illustrates VIP announces and the VIP address space is further detailedin table 904 which details VIP groupings.

Table 903 shows VIP announces left-loaded (most-significant digit) ofthe /48 prefixed space. The DNS VIP announces direct end user devices tovarious recursive DNS nodes maintained or managed by a content deliverynetwork, such as CDN 610. The HTTP VIP announces can direct contentrequests to VIP group-agnostic routes (i.e. no specific site/POPspecified). The left-loaded usage enables efficient usage of the VIPaddress space by allowing for more efficient detection of which bits cancorrespond to the DNS or HTTP announces versus the VIP groups in table904. Moreover, the left-loaded usage prevents blockage of an entiresupernet in logic that detects for routing when a VIP group happens tobe unreachable.

Table 903 shows 8 anycast ranges for both HTTP and DNS. Since thisallocation is replicated for all provider planes, a set of per-provideranycast prefixes is achieved as well as global anycast prefixes. These/48 prefixes do not all need to be announced into the global routingtable. The backing /36 aggregate can thus provide base policies. Theleft allocation of the prefixes can aid in containing damage of blockinga supernet and can aid in logically matching anycast prefixes by notingthat the third grouping of 16 bits terminates in 00. The remaining 4080VIP groups shown in table 904 can be assigned according to the needs ofthe CDN operator.

Table 904 shows VIP groupings as right-loaded (i.e. the remaining twodigits). Each entry in table 904 corresponds to a different VIP group towhich traffic can be routed. For example, FIG. 6 includes two POPs,namely POP A and POP B, which could be included in the same VIP group ora separate VIP group. In FIG. 9, 256 VIP groups are indicatedper-provider, with 16 possible providers, making for 4096 locators inthe VIP space. Sixteen (16) of these locators are employed for theglobal routing seen in table 903, and thus 4080 locators remain for VIPgroup locators.

VIP groups define a catchment area within which a content request can beserviced. This can span from a single POP up to all POPs if announcedfrom everywhere. VIP groups are best effort. If for any reason theirannouncement is dropped, fallback occurs to the provider plane which isanycasted. If a provider fails, then fallback occurs to the VIP space,which is global, and includes provider-agnostic anycast prefixes.Advantageously, graceful degradation of service can occur if a POPfails.

Announcements of VIP groups belonging to different provider planes canhave different properties. In the provider-independent or agnosticcases, all routes can be announced globally. In the per-provider cases,only the covering aggregate /36 is propagated, and then a no-announcecommunity is set on the service groups (/48). This aggregationadvantageously allows for avoidance of increasing the global IPv6routing table size unnecessarily. The addressing scheme in FIG. 9 allowsfor 14 providers, but can be overflowed into further space using another/32 space if desired.

Advantageously, the naming scheme and hierarchical structure of both theinfrastructure address space in FIG. 5 and the VIP address space in FIG.9 allow for more efficient management of routing, announcements, andtraffic handling. For example, automated address management can beachieved using a consistent naming scheme for locators, and PQDNs can betraversed in a tree-like fashion to identify traffic segments, VIPgroups, POPs/sites, providers, or logical CDNs, among other information.

In many examples of the CDNs presented herein, the CDNs are flexibleregarding which physical host or cache node replies to a contentrequest. Instead, the main concern is to pool available resourcesefficiently in order to serve requests reliably and in a timely fashion.This scheme prefers that IP addresses used by various content servicesbe configured on more than one server or cache node. Every VIP can havea one-to-many mapping with infrastructure IP addressing, potentiallywith different IP versions. This means that a VIP address in IPv6 maymap solely to devices with IPv4 infrastructure IPs and vice-versa.

A VIP group can be a set of VIP addresses. End users or contentproviders (customers of the CDN) can conceptualize the CDN as acollection of points of presence (POPs). A POP can comprise a set of VIPaddresses, and by extension the pool of servers which happen servicethem. Thus, a POP can comprise a service-based construct, and can beviewed as a logical overlay rather than a physical infrastructuralproperty. A POP can include a set of segments which announce the sameset of VIP groups and which share content. These segments may belong todifferent sites. This decouples our definition of sites and POPs. Sitesare thus typically anchored on physical reality, POPs are a serviceabstraction which is surfaced to the content provider/customer. Themigration of a POP to an entirely new site should be transparent to thecustomer. For example, the site identifier will have changed, but thePOP identifier used will not. If two sites are within close physicalproximity, then a POP can span multiple sites. Having multiple POPswithin the same site can also be achieved. In some examples, the samePOP can have multiple VIP groups, and conversely some examples have asame VIP group has multiple POPs. For example, a first POP in Hong Kongmight announce the following VIP groups HKG, ASIA, HTTP1, HTTP2, HTTP3,HTTP4, DNS1, DNS2, DNS3, and DNS4. The Asia VIP group is equallyannounced from other Asian-regional POPs, such as Singapore, Sydney, andNarita POPs in the Asia-Pacific zone. In networking parlance, this canbe referred to as an anycast prefix, but in the examples herein, it isinstead a VIP group that spans multiple POPs.

A VIP group is uniquely identified by a VIP group name and canoptionally be announced from more than one POP. To aid in havingcustomers mapped to VIPs consistently across VIP groups, in someexamples it can be important to have all VIP groups use the same numberof IP addresses, and that allocation can be made sequentially. In aparticular example, all VIP groups contain the same number of IPaddresses, and are represented as a list of IPv4 prefixes to which newallocations are appended over time. Historically, cache nodes have beenconfigured to only service requests for the specific POP they belong to.From a CDN operator standpoint this configuration makes the CDNvulnerable to site failures, and makes the CDN unable to maintainservice for a POP once the VIP group has been withdrawn due to amaintenance, failures, or DDoS attack. Thus, at the cost of consumingmore address space, a CDN employed herein can have a backup anycastannouncement which covers all VIP groups. Whenever a POP service groupis withdrawn, traffic routing will fall back to being served fromadjacent POPs included in the anycast.

In an ideal case, any POP should be able to reply to a request for anyVIP. However, cache nodes would not rely on pulling content from domainswhich may resolve to VIPs. More specifically, a CDN can be consideredthe conjunction of a VIP space with an optional infrastructure space.Other logical (third-party) CDNs overlaid on the base CDN can alsofollow the same address allocation policy, albeit with different IPaddresses and subnetting. Infrastructure space need not define a CDN,since the CDN operator can overlay a third party VIP space over the baseCDN. This covers the possibility of having to announce VIPs on behalf ofcustomers. The base CDN may announce VIPs from other logical/third-partyCDNs. However, in most examples, the logical/third-party CDNs should notannounce VIPs other than their own. This covers the use case oftemporarily overflowing traffic from logical/third-party CDNs onto thebase CDN in the event of DDOS or excessive demand.

To further describe the equipment and operation of a cache node, FIG. 10is provided which illustrates cache node 1000. Cache node 1000 can be anexample of cache nodes 111-112 of FIG. 1 and cache nodes 611-614 of FIG.6, although variations are possible. Cache node 1000 includes networkinterface 1001 and processing system 1010. Processing system 1010includes processing circuitry 1011, random access memory (RAM) 1012, andstorage 1013, although further elements can be included, such asdiscussed in FIGS. 1 and 6. Example contents of RAM 1012 are furtherdetailed in RAM space 1020, and example contents of storage 1013 arefurther detailed in storage system 1060.

Processing circuitry 1011 can be implemented within a single processingdevice but can also be distributed across multiple processing devices orsub-systems that cooperate in executing program instructions. Examplesof processing circuitry 1011 include general purpose central processingunits, microprocessors, application specific processors, and logicdevices, as well as any other type of processing device. In someexamples, processing circuitry 1011 includes physically distributedprocessing devices, such as cloud computing systems.

Network interface 1001 includes one or more network interfaces forcommunicating over communication networks, such as packet networks, theInternet, and the like. The network interfaces can include one or morelocal or wide area network communication interfaces which cancommunicate over Ethernet or Internet protocol (IP) links. Networkinterface 1001 can include network interfaces configured to communicateusing one or more network addresses, which can be associated withdifferent network links. Examples of network interface 1001 includenetwork interface card equipment, transceivers, modems, and othercommunication circuitry.

RAM 1012 and storage 1013 together can comprise a non-transitory datastorage system, although variations are possible. RAM 1012 and storage1013 can each comprise any storage media readable by processingcircuitry 1011 and capable of storing software. RAM 1012 can includevolatile and nonvolatile, removable and non-removable media implementedin any method or technology for storage of information, such as computerreadable instructions, data structures, program modules, or other data.Storage 1013 can include non-volatile storage media, such as solid statestorage media, flash memory, phase change memory, magnetic memory, or asillustrated by storage system 1060 in this example. RAM 1012 and storage1013 can each be implemented as a single storage device but can also beimplemented across multiple storage devices or sub-systems. RAM 1012 andstorage 1013 can each comprise additional elements, such as controllers,capable of communicating with processing circuitry 1011.

Software stored on or in RAM 1012 or storage 1013 can comprise computerprogram instructions, firmware, or some other form of machine-readableprocessing instructions having processes that when executed a processingsystem direct cache node 1000 to operate as described herein. Forexample, software drives cache node 1000 to receive requests forcontent, determine if the content is stored in cache node 1000, retrievecontent from origin servers, transfer content to end user devices,manage data storage systems for handling and storing the content,determine requestor state information, persist requestor stateinformation, and transfer requestor state information to other cachenodes, among other operations. The software can also include usersoftware applications. The software can be implemented as a singleapplication or as multiple applications. In general, the software can,when loaded into a processing system and executed, transform theprocessing system from a general-purpose device into a special-purposedevice customized as described herein.

RAM space 1020 illustrates a detailed view of an example configurationof RAM 1012. It should be understood that different configurations arepossible. RAM space 1020 includes applications 1030, operating system(OS) 1040, and content RAM cache 1050. Content RAM cache 1050 includesRAM space for temporary storage of content, such as dynamic randomaccess memory (DRAM).

Applications 1030 include content interface 1031, configurationinterface 1032, and content caching application 1035. Content cachingapplication 1035 handles caching of content and management of storagespaces, such as content RAM cache 1050 and storage space 1065, as wellas exchanges content, data, and instructions via content interface 1031and configuration interface 1032. Content caching application 1035 cancomprise a custom application, Varnish caching software, hypertexttransfer protocol (HTTP) accelerator software, or other content cachingand storage applications, including variation, modifications, andimprovements thereof. Applications 1030 and OS 1040 can reside in RAMspace 1020 during execution and operation of cache node 1000, and canreside in system software storage space 1062 on storage system 1060during a powered-off state, among other locations and states.Applications 1030 and OS 1040 can be loaded into RAM space 1020 during astartup or boot procedure as described for computer operating systemsand applications.

Content interface 1031 and configuration interface 1032 each allow auser to interact with and exchange data with content caching application1035. In some examples, each of content interface 1031 and configurationinterface 1032 comprise an application programming interface (API).Content interface 1031 allows for exchanging content for caching incache node 1000 by content caching application 1035, and can alsoreceive instructions to purge or erase data from cache node 1000.Content interface 1031 can retrieve tracking elements as well as networkand web page content from origin servers for delivery to end users.Configuration interface 1032 allows for altering the configuration ofvarious operational features of content caching application 1035. Insome examples, configuration interface 1032 comprises a scriptinglanguage interface, such as Varnish Configuration Language (VCL), Perl,PHP, Javascript, or other scripting or interpreted language-basedinterfaces. Content interface 1031, and configuration interface 1032 caneach communicate with external systems via network interface 1001 overany associated network links. In further examples, one or more ofelements 1031-1032 are implemented in VCL or VCL modules.

Storage system 1060 illustrates a detailed view of an exampleconfiguration of storage 1013. Storage system 1060 can comprise flashmemory such as NAND flash or NOR flash memory, phase change memory,magnetic memory, among other solid state storage technologies. As shownin FIG. 10, storage system 1060 includes system software 1062, as wellas content 1061 stored in storage space 1065. As described above, systemsoftware 1062 can be a non-volatile storage space for applications 1030and OS 1040 during a powered-down state of cache node 1000, among otheroperating software. Content 1061 includes cached content, such as theweb content, which can include text, data, pictures, video, audio, webpages, scripting, code, dynamic content, or other network content. Inthis example, content 1061 includes network content and web pagesassociated with one or more websites, as indicated by www.gamma.gov,www.alpha.com, and www.beta.net.

Cache node 1000 is generally intended to represent a discrete ordistributed computing system with which at least software 1030 and 1040are deployed and executed in order to render or otherwise implement theoperations described herein. However, cache node 1000 can also representany computing system on which at least software 1030 and 1040 can bestaged and from where software 1030 and 1040 can be distributed,transported, downloaded, or otherwise provided to yet another computingsystem for deployment and execution, or yet additional distribution.

FIG. 11 illustrates the internal configuration of control node 1100.Control node 1100 can be an implementation of elements of a contentdelivery network, such as portions of DNS translation nodes, managementsystems, control nodes, or other elements, although variations arepossible. For example, control node 1100 can be an example of controlnode 140 in FIG. 1, or management system 640, route node 615, DNS node645 in FIG. 6, or other elements of a CDN or DNS system. Control node1100 includes management interface 1110, communication interface 1120,and processing system 1130. Processing system 1130 includes processor1140 and storage system 1150. In operation, processing system 1130 isoperatively linked to management interface 1110, communication interface1120, and storage system 1150. Processing system 1130 is capable ofexecuting software 1160 stored in storage system 1150. When executingthe software, processing system 1130 drives control node 1100 to operateas described herein. Control node 1100 can also include other elements,such as user interfaces, computer systems, databases, distributedstorage and processing elements, and the like.

Management interface 1110 includes one or more network interfaces fortransferring announcement messages for delivery to DNS nodes, backhaulnetworks, or ISPs and associated network equipment. Management interface1110 can also include one or more network interfaces for transferringDNS translation response messages for delivery to end user devices.Management interface 1110 can comprise software interfaces, applicationprogramming interfaces (APIs), remote user interfaces, terminalinterfaces, and the like. In some examples, management interface 1110 isimplemented by processing system 1130 and communicates over networkinterface 1120. In other examples, management interface 1110 isconfigured to communicate over communication networks, such as packetnetworks, the Internet, and the like. Management interface 1110 caninclude one or more local or wide area network communication interfaceswhich can communicate over Ethernet or Internet protocol (IP) links.Management interface 1110 can include network interfaces configured tocommunicate using one or more network addresses, which can be associatedwith different network links. Examples of management interface 1110include network interface card equipment, transceivers, modems, andother communication circuitry.

Network interface 1120 includes one or more network interfaces forcommunicating over communication networks, such as packet networks, theInternet, and the like. The network interfaces can include one or morelocal or wide area network communication interfaces which cancommunicate over Ethernet or Internet protocol (IP) links. Networkinterface 1120 can include network interfaces configured to communicateusing one or more network addresses, which can be associated withdifferent network links. Examples of network interface 1120 includenetwork interface card equipment, transceivers, modems, and othercommunication circuitry.

Processing system 1130 can be implemented within a single processingdevice but can also be distributed across multiple processing devices orsub-systems that cooperate in executing program instructions. Examplesof processing system 1130 include general purpose central processingunits, microprocessors, application specific processors, and logicdevices, as well as any other type of processing device. In someexamples, processing system 1130 includes physically distributedprocessing devices, such as cloud computing systems.

Storage system 1150 comprises one or more computer-readable media-baseddata storage system, although variations are possible. Storage system1150 can comprise any non-transitory storage media readable by processor1140 and capable of storing at least software 1160. Storage system 1150can include volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information, suchas computer readable instructions, data structures, program modules, orother data. Storage system 1150 can include non-volatile storage media,such as solid state storage media, flash memory, or solid state storagesystem. Storage system 1150 can be implemented as a single storagedevice but can also be implemented across multiple storage devices orsub-systems. Storage system 1150 can comprise additional elements, suchas controllers, capable of communicating with processor 1140.

Software stored on or in storage system 1150 can comprise computerprogram instructions, firmware, or some other form of machine-readableprocessing instructions having processes that when executed byprocessing system 1130 direct control node 1100 to operate as describedherein. The software can also include user software applications. Thesoftware can be implemented as a single application or as multipleapplications. In general, the software can, when loaded into processingsystem 1130 and executed, transform processing system 1130 from ageneral-purpose device into a special-purpose device customized asdescribed herein.

In at least a first example, the machine-readable processinginstructions comprise announcement logic 1170, which can include userinterface module 1171, prefix module 1172, and routing control planemodule 1173. Implementations of announcement logic 1170 have flexibilityas to how many logic modules are present and how responsibilities aredistributed amongst the modules. User interface module 1171 isconfigured to interact with a user to configure various parametersassociated with management of cache nodes, such as receiving IP addressassignments for cache nodes and identifying which providers, such asbackhaul networks or ISPs, are linked to a content delivery network,among other operations. User interface module 1171 can communicate withmanagement interface 1110 for manual or automated entry and maintenanceof IP addressing data, such as the IP addresses of cache nodes, prefixsizes, PQDNs, and the association of prefixes with providers. Prefixmodule 1172 can determine prefixes for one or more IP addressesassociated with one or more cache nodes, and determine PQDNs, fordelivery to routing systems within one or more providers. Routingcontrol plane module 1173 distributes announcement messages for deliveryto providers and the Internet at large, among other destinations.Routing control plane module 1173 can delivery, DNS configurationmessages, or routing and handling configuration messages to otherrouting devices over network interface 1120, such as the prefixannouncement messages discussed herein. Routing control plane module1173 announces routing data such as prefixes or PQDNs, perhaps as BorderGateway Protocol advertisements.

In at least a second example, control node 1100 provides route selectionfeatures which can drive a DNS system to return a particular IP addressor prefix responsive to content request domain name lookup requests fromend user devices. For example, when control node 1100 comprises featuresof one or more of DNS system 101, control node 140, DNS node 645, DNS601, or management system 640, route selection can be handled by controlnode 1100. The machine-readable processing instructions comprise routeselection logic 1180, which can include conditions monitoring module1181 and address selection module 1182. Conditions monitoring module1181 is configured to monitor conditions of various routes over whichsites, POPs, and cache nodes can be reached. These various routes caninclude various providers. The conditions can include network conditionssuch as response latency of content request fulfilment, throughput of aprovider, bandwidth of links associated with a provider, throttlingstatus of a provider, DDoS attack conditions, or the networkcharacteristics and network conditions discussed herein, includingcombinations and variations thereof. The conditions monitoring can beperformed by continual or periodic traffic monitoring for contentrequests handled by cache nodes of an associated content deliverynetwork. Network performance information can be received from cachenodes which monitor their own performance and report network conditionsto control node 1100. Network performance information can be identifiedby control node 1100 by issuing pings, dummy traffic, test traffic, orother monitoring traffic. Conditions monitoring module 1181 can identifya desired provider over which to handle content requests, and canidentify a desired site or POP that includes cache nodes or cache nodes.These desired providers or desired data centers can be identified basedon the network conditions monitored or collected by conditionsmonitoring module 1181. A desired IP address of a cache node or prefixfor a particular provider can be identified and provided to a DNS lookupservice. As an example DNS lookup service, address selection module 1182is provided. Address selection module 1182 can receive a selected ordesired IP address or prefix from conditions monitoring module 1181.Responsive to domain name translation requests issued by end userdevices related to content requests, address selection module 1182 canprovide the desired or selected IP address or prefix to an end userdevice. In some examples, a main DNS service is employed by a providerto initially identify control node 1100 as a sub-DNS or recursive DNSlookup service. The recursive DNS lookup service can respond to addresstranslation requests issued by another primary DNS service with thedesired or selected IP address that identifies a desired site/POP ordesired cache node. In some examples, the recursive DNS lookup servicecan respond to address translation requests issued by another primaryDNS service with the desired or selected IP address as well as a prefixor PQDN which identifies a provider over which the associated contentrequest is to be routed.

The included descriptions and figures depict specific embodiments toteach those skilled in the art how to make and use the best mode. Forthe purpose of teaching inventive principles, some conventional aspectshave been simplified or omitted. Those skilled in the art willappreciate variations from these embodiments that fall within the scopeof the invention. Those skilled in the art will also appreciate that thefeatures described above can be combined in various ways to formmultiple embodiments. As a result, the invention is not limited to thespecific embodiments described above, but only by the claims and theirequivalents.

What is claimed is:
 1. A method of operating a domain name system (DNS)node in a content delivery network (CDN), the method comprising:establishing address correlations between prefixed Internet Protocolversion 6 (IPv6) network addresses and partially qualified domain names(PQDNs), wherein each PQDN comprises indicators for a routing provideridentifier and a cache node grouping; receiving recursed DNS queries;for each of the recursed DNS queries, selecting one of the prefixed IPv6network addresses according to a desired routing provider and a desiredcache node grouping indicated in the PQDN in a given DNS query; replyingto the given DNS query with the one of the prefixed IPv6 networkaddresses.
 2. The method of claim 1 further comprising: establishingdomain name relationships for use by a top-level domain name system(DNS) to recurse DNS queries to a DNS node associated with the CDN;wherein the CDN comprises a plurality of sites each having cache nodesthat cache content for delivery to end user devices, the methodcomprising; and wherein the IPv6 network addresses reach the cachenodes.
 3. The method of claim 2, further comprising: in the DNS node,selecting routing providers for each of the recursed DNS queries,wherein the routing providers route content indicated by the domainnames and have associated routing provider indicators; in the DNS node,selecting cache node groupings for each of the recursed DNS queries,wherein the cache node groupings serve content indicated by the domainnames and have associated cache node grouping indicators.
 4. The methodof claim 3, further comprising: in the DNS node, forming composite PQDNsfrom at least the routing provider indicators and the cache nodegrouping indicators, determining correlated ones of the prefixed IPv6addresses that correspond to the composite PQDNs using at least theaddress correlations, and transferring responses to the recursed DNSqueries comprising IPv6 network addresses corresponding to thecorrelated ones of the prefixed IPv6 addresses.
 5. The method of claim4, wherein forming the composite PQDNs comprises assembling thecomposite PQDNs with at least a base domain name associated with thecontent delivery network, the routing provider indicators, and the cachenode grouping indicators.
 6. The method of claim 4, further comprising:in the DNS node, determining the IPv6 network addresses based on thecorrelated ones of the prefixed IPv6 addresses and further networkaddress bits to form the IPv6 network addresses.
 7. The method of claim6, wherein bits of the IPv6 network addresses corresponding to theprefixed IPv6 addresses comprise IPv6 locator bits, and wherein thefurther network address bits comprise IPv6 identifier bits.
 8. Themethod of claim 3, wherein the routing provider indicators correspond to/36 prefixed IPv6 addresses, and wherein the cache node groupingindicators correspond to /48 prefixed IPv6 addresses.
 9. The method ofclaim 2, wherein the desired cache node grouping corresponds to aplurality of cache nodes that span one or more physical sites housingthe plurality of cache nodes, wherein each of the one or more physicalsites are configured to load balance among an associated set of theplurality of cache nodes for received content requests that areassociated with the recursed DNS queries.
 10. The method of claim 2,further comprising: in the DNS node, selecting the desired cache nodegrouping for each of the recursed DNS queries based on at leastestimated network latency for the end user devices to receive contentfrom the desired cache node grouping.
 11. A method of operating acontent delivery network (CDN) comprising a plurality of sites eachhaving cache nodes that cache content for delivery to end user devices,the method comprising: establishing domain name relationships for use bya top-level domain name system (DNS) to resolve DNS queries to a DNSnode associated with the CDN; in the DNS node, establishing addresscorrelations between prefixed Internet Protocol version 6 (IPv6) networkaddresses and partially qualified domain names (PQDNs) that compriseindicators for at least a routing provider identifier and a cache nodegrouping; in the DNS node, receiving DNS queries and responsivelytranslating domain names in the DNS queries into associated IPv6 networkaddresses to reach content indicated by the domain names, the associatedIPv6 network addresses each determined by at least selecting one of theprefixed IPv6 network addresses according to a desired routing providerand a desired cache node grouping indicated in the PQDNs.
 12. The methodof claim 11, further comprising: in the DNS node, selecting routingproviders for each of the DNS queries, wherein the routing providersroute content indicated by the domain names and have associated routingprovider indicators; in the DNS node, selecting cache node groupings foreach of the DNS queries, wherein the cache node groupings serve contentindicated by the domain names and have associated cache node groupingindicators.
 13. The method of claim 12, further comprising: in the DNSnode, forming composite PQDNs from at least the routing providerindicators and the cache node grouping indicators, determiningcorrelated ones of the prefixed IPv6 addresses that correspond to thecomposite PQDNs using at least the address correlations, andtransferring responses to the DNS queries comprising IPv6 networkaddresses corresponding to the correlated ones of the prefixed IPv6addresses.
 14. The method of claim 13, wherein forming the compositePQDNs comprises assembling the composite PQDNs with at least a basedomain name associated with the content delivery network, the routingprovider indicators, and the cache node grouping indicators.
 15. Themethod of claim 13, further comprising: in the DNS node, determining theIPv6 network addresses based on the correlated ones of the prefixed IPv6addresses and further network address bits to form the IPv6 networkaddresses.
 16. The method of claim 15, wherein bits of the IPv6 networkaddresses corresponding to the prefixed IPv6 addresses comprise IPv6locator bits, and wherein the further network address bits comprise IPv6identifier bits.
 17. The method of claim 12, wherein the routingprovider indicators correspond to /36 prefixed IPv6 addresses, andwherein the cache node grouping indicators correspond to /48 prefixedIPv6 addresses.
 18. The method of claim 11, wherein the desired cachenode grouping corresponds to a plurality of cache nodes that span one ormore physical sites housing the plurality of cache nodes, wherein eachof the one or more physical sites are configured to load balance amongan associated set of the plurality of cache nodes for received contentrequests that are associated with the DNS queries.
 19. The method ofclaim 11, further comprising: in the DNS node, selecting the desiredcache node grouping for each of the DNS queries based on at leastestimated network latency for the end user devices to receive contentfrom the desired cache node grouping.
 20. A method of operating a domainname system (DNS) node that services a content delivery network (CDN):receiving recursive DNS queries; accessing address correlationsestablished between prefixed Internet Protocol version 6 (IPv6) networkaddresses and partially qualified domain names (PQDNs) that compriseindicators for at least a routing provider identifier and a cache nodegrouping; and translating domain names in the recursive DNS queries intoassociated IPv6 network addresses to reach content indicated by thedomain names by at least selecting one of the prefixed IPv6 networkaddresses according to a desired routing provider and a desired cachenode grouping indicated in the PQDNs.